资源描述:
《计算机图形学实验报告(一)【精选】》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、入Ellipse(tmpDC,x0,y0,a,b);力H入y=(float)yO;while(i<=length){SetPixel(tmpDC,int(x+0.5),int(y+0.5),color);x+=dx;y+二dy;i++;)2)区域填充的程序在voidPolyline(tmpDC)添加活性边表填充voidPolyline(HDCtmpDC)〃多边形边数.{constintPOINTNUM=4;//或者是八边形8/******定义结构体用于活性边表AET实验一OpenGL开发环境及扫描转换算法1、实验
2、目的与要求1.通过实验掌握OpenGL屮编程环境的设置,了解相关函数用途及设置步骤;2.通过实验掌握基本图形元素的生成,给出相关代码和运行结果;3.用WINDOWSGDI函数编写生成直线或区域填充的程序(选DDA或Bresenham直线算法,活性边表算法填充多边形),演示算法过程。4.画矩形,调用一个函数画一个矩形。画椭圆,调用一个函数画一个椭圆。画Bezier曲线。2、实验方案请描述为达到实验的需要完成哪些方血的实验,列举出实验的基本要点和重点。在工程WinAPIEX加入voidcreateLine(HDCtm
3、pDC)和voidPolyline(tmpDC)在voidcreateLine(HDCtmpDC)用DDA直线算法或Bresenham直线算法牛成直线在voidPolyline(tmpDC)添加活注边表填充算法,生成填充四边形和八边形力fl入Rectangle(tmpDC,xO,yO,xl,y1);加PolyBezier(tmpDC,an_vertex,4);3、实验结果和数据处理1)生成直线的DDA直线算法在createLine(tmpDC)中加入以下代码intxO,yO,x1,yl,color;〃自定义直线的
4、起点(xO,yO)和终点(xl,yl),及颜色colorfloatdx,dy,x,y;intlength,i;x0=50;y0=160;x1=900;y1=200;//此处修改了color=1000;color=1;if(abs(x1-xO)>=abs(y1-y0))length=abs(x1-xO);elselenglh=abs(y1-yO);dx=(x1-xO)/(float)length;dy=(y1-yO)/(float)length;i=l;x=(float)x0;pointfkT.、尸.r•士*£>%
5、1«*S«•丄■•丄■•卜•土•丄■•土•丄■•土•£■•土•丄■•土•土l^kI#T^#T%#T%彳・^T%******/typedefstructXET{floatx;floatdx,ymax;XET*next;}AET,NET;/******定义点结构体•b•士“e■士•士“e•士■士•士“e■士•士"e•士•土•土•土*&»•土*&»•土*&»6、TNUM]={100,100,400,100,400,400,100,400};〃正方形//polypoint[POINTNUMl={600,100,700,100,800,200,800,300,700,400,600,400,500,300,500,200};//八边形顶点/枠枠枠计算最高点的y坐标(扫描到此结.・7、1♦沪rj*rj**1*rj*rjwrjwrjwrjwrjwrjwrjwrj^rjwrjwrjwrjwrjwrjwrjwr
8、jwvj^k!>k!>k!>/rpV、•卜rprprj*rprj%fintMaxY=0;inti;for(i=0;iMaxY)/******扫描并建立NET表^X・*X*•匕•匕^X・*X*^X・•匕•丄•^X・*X*^X・•匕^X・*X*^X・•匕^X・•匕・.••»••a••#••a••t••a••a••a••a••a••a••a••#••a••a•・.••#•・.••a•・.••a•・.••I•・.••I•・.••I•・.••I•・.••I•・
9、.•/♦“rTw♦“rTwrYwrTwrYwrTwrlwrTwrYwrTwrT*rTw»YwrTw»YwrTw»YwrTw»TwrTwrTw/for(i=0;i<=MaxY;i++){for(intj=0;jpolypoi