ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:231KB ,
资源ID:2889008      下载积分:9 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2889008.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学实验报告(一).doc)为本站会员(tangtianxu2)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

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

2、e(HDC tmpDC)和 void Polyline (tmpDC)在 void createLine(HDC tmpDC)用 DDA 直线算法或 Bresenham 直线算法生成直线在 void Polyline (tmpDC)添加活泩边表填充算法,生成填充四边形和八边形加入 Rectangle(tmpDC,x0,y0,x1,y1);加入 Ellipse (tmpDC, x0,y0,a,b) ;加入 PolyBezier(tmpDC,arr_vertex,4) ;3、 实验结果和数据处理1) 生成直线的 DDA 直线算法在 createLine(tmpDC)中加入以下代码int x0,y0

3、,x1,y1,color; /自定义直线的起点(x0,y0)和终点(x1,y1),及颜色 colorfloat dx,dy,x,y;int length,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)length;dy=(y1-y0)/(float)length;i=1;x=(float)x0;y=(float)y0;while(iMaxY)MaxY=(int)poly

4、pointi.y;/*初始化 AET 表*/AET *pAET=new AET;pAET-next=NULL;/*初始化 NET 表*/NET *pNET1024;for(i=0;inext=NULL;/*扫描并建立 NET 表*/for(i=0;ipolypointj.y)NET *p=new NET;p-x=polypointj.x;p-ymax=polypoint(j-1+POINTNUM)%POINTNUM.y;p-dx=(polypoint(j-1+POINTNUM)%POINTNUM.x-polypointj.x)/(polypoint(j-1+POINTNUM)%POINTNUM

5、.y-polypointj.y);p-next=pNETi-next;pNETi-next=p;if(polypoint(j+1+POINTNUM)%POINTNUM.ypolypointj.y)NET *p=new NET; p-x=polypointj.x;p-ymax=polypoint(j+1+POINTNUM)%POINTNUM.y;p-dx=(polypoint(j+1+POINTNUM)%POINTNUM.x-polypointj.x)/(polypoint(j+1+POINTNUM)%POINTNUM.y-polypointj.y);3p-next=pNETi-next;pNE

6、Ti-next=p;/*建立并更新活性边表AET*/for(i=0;inext;while(p)p-x=p-x + p-dx;p=p-next;/更新后新 AET 先排序*/断表排序,不再开辟空间AET *tq=pAET;p=pAET-next;tq-next=NULL;while(p)while(tq-next NET *s=p-next;p-next=tq-next;tq-next=p;p=s;tq=pAET;/(改进算法)先从 AET 表中删除ymax=i 的结点*/AET *q=pAET;p=q-next;while(p)if(p-ymax=i)q-next=p-next;delete

7、 p;p=q-next;elseq=q-next;p=q-next;/将 NET 中的新点加入 AET,并用插入法按 X 值递增排序*/p=pNETi-next;q=pAET;while(p)while(q-next NET *s=p-next;p-next=q-next;q-next=p;p=s;q=pAET;/*配对填充颜色*/p=pAET-next;while(p jnext-x;j+)SetPixel(tmpDC,static_cast(j),i,RGB(255,200,0);/此处我改变了颜色,八边形的为黄色/ 4SetPixel(tmpDC,static_cast(j),i,RGB

8、(255,0,0);/还有四边形的红色p=p-next-next;/考虑端点情况 /画矩形Rectangle(tmpDC,20,20,80,80); /左上顶点,右下顶点/画椭圆Ellipse (tmpDC, 20,20,160,360) ;/画 Bezier 曲线 ,利用已有的顶点数据PolyBezier(tmpDC,arr_vertex,4) ;实验截图:1.DDA 算法的直线2.四边形和八边形3.正方形54.椭行5.Bezier 曲线实习总结:通过本次实验,我掌握了 opengl 绘图的一些基本知识,会在 vc 里面加入 opengl 的基本库。6实验中我掌握了 DDA 算法的基本思路、多边形的填充算法的基本思路和填充颜色的一些操作,以争取达到美化的功效。本次试验老师已经把这些图形画法的算法和实现都给了我们,我们只要去修改些算法的参数就可以了。但我还是去尝试着自己去建立了些工程,但最后还是发现挺麻烦的,所以放弃了。通过本次实验,我深深地体会到了图形学的深奥和美丽之处,我发现自己已经喜欢上图形学这门课程了。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报