计算机图形学实验报告(一)

计算机图形学实验报告(一)

ID:20704116

大小:118.00 KB

页数:6页

时间:2018-10-15

计算机图形学实验报告(一)_第1页
计算机图形学实验报告(一)_第2页
计算机图形学实验报告(一)_第3页
计算机图形学实验报告(一)_第4页
计算机图形学实验报告(一)_第5页
资源描述:

《计算机图形学实验报告(一)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验一OpenGL开发环境及扫描转换算法1、实验目的与要求1.通过实验掌握OpenGL中编程环境的设置,了解相关函数用途及设置步骤;2.通过实验掌握基本图形元素的生成,给出相关代码和运行结果;3.用WINDOWSGDI函数编写生成直线或区域填充的程序(选DDA或Bresenham直线算法,活性边表算法填充多边形),演示算法过程。4.画矩形,调用一个函数画一个矩形。画椭圆,调用一个函数画一个椭圆。画Bezier曲线。2、实验方案请描述为达到实验的需要完成哪些方面的实验,列举出实验的基本要点和重点。在工程W

2、inAPIEX加入voidcreateLine(HDCtmpDC)和voidPolyline(tmpDC)在voidcreateLine(HDCtmpDC)用DDA直线算法或Bresenham直线算法生成直线在voidPolyline(tmpDC)添加活泩边表填充算法,生成填充四边形和八边形加入Rectangle(tmpDC,x0,y0,x1,y1);加入Ellipse(tmpDC,x0,y0,a,b);加入PolyBezier(tmpDC,arr_vertex,4);3、实验结果和数据处理1)生成直线

3、的DDA直线算法在createLine(tmpDC)中加入以下代码intx0,y0,x1,y1,color;//自定义直线的起点(x0,y0)和终点(x1,y1),及颜色colorfloatdx,dy,x,y;intlength,i;x0=50;y0=160;x1=900;y1=200;//此处修改了color=1000;color=1;if(abs(x1-x0)>=abs(y1-y0))length=abs(x1-x0);elselength=abs(y1-y0);dx=(x1-x0)/(float)

4、length;dy=(y1-y0)/(float)length;i=1;x=(float)x0;y=(float)y0;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/******定义结构体用于活性边表AE

5、T和新边表NET***********************************/typedefstructXET{floatx;floatdx,ymax;XET*next;}AET,NET;/******定义点结构体point******************************************************/structpoint{floatx;floaty;}polypoint[POINTNUM]={100,100,400,100,400,400,100,400};/

6、/正方形//polypoint[POINTNUM]={600,100,700,100,800,200,800,300,700,400,600,400,500,300,500,200};//八边形顶点/******计算最高点的y坐标(扫描到此结束)****************************************/intMaxY=0;inti;for(i=0;iMaxY)MaxY=(int)polypoint[i].y;/***

7、****初始化AET表***********************************************************/AET*pAET=newAET;pAET->next=NULL;/******初始化NET表************************************************************/NET*pNET[1024];for(i=0;i<=MaxY;i++){pNET[i]=newNET;pNET[i]->next=NULL;}/****

8、**扫描并建立NET表*********************************************************/for(i=0;i<=MaxY;i++){for(intj=0;jpolypoint[j].y){NET*p=newNET;p->x=polypoint[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。