计算机图形学实验一:画直线(9页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机图形学实验一:画直线(9页).doc》由会员分享,可在线阅读,更多相关《计算机图形学实验一:画直线(9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-计算机图形学实验一:画直线-第 9 页贵州大学实验报告学院:计算机科学与技术 专业: 计算机科学与技术 班级:计科131姓名学号实验组实验时间指导教师黄初华成绩实验项目名称直线生成实验目的实验目的通过本实验,使学生了解并掌握在光栅显示系统中直线的生成和显示算法,熟悉相关开发平台。为后继实验打下基础。实验要求实验组织运行要求以学生自主训练为主的开放模式组织教学。实验原理xPi=(xi, yi)MQP1p2y中点画线法算法原理:设0k1中点M在直线下方,下一点取p1点;中点M在直线上方取p2点。中点算法用整数加法及比较代替了DDA中的浮点数加法及取整运算,效率大大提高。假设直线的起点、终点分别为
2、:(X0,Y0),(X1,Y1),直线将二维空间划分为三个区域:直线方程: F(x,y)=ax+by+c=0其中: a=-(y1-y0),b=(x1-x0),c=-B(x1-x0)如F(x,y)=0, 则(x,y) 在直线上如F(x,y)0, 则(x,y)在直线上方yxF(x,y)=0F(x,y)0F(x,y)0,则M在理想直线上方,选正右方P2点;如果 d0).,则新的中点M仅在x方向加1,新的d值为:dnew=F(xi+2,yi+0.5)=a(xi+2)+b(yi+0.5)+c而 dold=F(xi+1,yi+0.5)=a(xi+1)+b(yi+0.5)+cdnew=dold+a= dol
3、d-dy2.如由pi点确定是右上方P1点(d=0dnew=dold-2(dy-dx),当dold0Bresenham画线算法算法原理:与DDA算法相似,Bresenham画线算法也要在每列象素中找到与理想直线最逼近的象素点。根据直线的斜率来确定变量在x或y方向递增一个单位。另一个方向y或x的增量为0或1,它取决于实际直线与最接近网格点位置的距离。这一距离称为误差。算法的巧妙构思,使每次只需检查误差项(增量)的符号即可。定义决策变量:d =d+k (0k1)设0k1,如直线上的一点为(x,y),则下一点为:(x+1,y) (d=0.5)当d1时,让d=d-1,以保证0=d1,d0=0令e =d-
4、0.5 (0k1),则e0 = -0.5则下一点为: (x+1,y),(e=0)当e 0时, 让e =e-1,(重新初始化误差项)由于算法只用到误差项的符号,为了改用整数以避免除法,可以作如下替换:e = 2*e*dx定义决策变量 e = 2*e*dx,则e0 = -dx,e=e +2*dy则下一点为:(x+1,y),(e =0) 当e 0时, 让 e =e -dx, (重新初始化误差项)实验环境实验条件硬件平台:PC软件(推荐):Windows平台,Visual stdio2013,OpenGL实验步骤实验步骤1. 掌握算法原理;2. 依据算法,编写源程序并进行调试;3. 对运行结果进行保存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 实验 直线
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内