网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机图形学课程设计报告--直线和圆中点Bresenham算法.doc

计算机图形学课程设计报告--直线和圆中点Bresenham算法.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学课程设计报告 课题名称 直线和圆中点Bresenham算法 小组成员 林珊珊 0701 1307101118 王金韬 0701 1307101123 陈文辉 0702 1307101215 周叶青 0702 1307101224 院、系、部 数理系 专 业 信息与计算科学 指导教师 林杰 一、设计任务及要求: 设计任务: 掌握中点Bresenham算法绘制直线的原理,设计中点Bresenham算法,编写Mbline()子函数,使用中点Bresenham算法绘制斜率为0≦k≦1的直线。 掌握八分法中点Bresenham算法绘制圆的原理,设计八分法绘制圆的中点Bresenham算法,编写八分法绘制圆的CirclePoint(x,y)子函数,编写绘制整圆的Mbcircle()子函数,使用中点Bresenham算法绘制圆心位于屏幕客户区中心的圆。 要 求: 此次课程设计的课题为通过编程,实现圆和直线等基本图形的绘制。要求用Bresenham算法实现圆和直线等基本图形的绘制,并给出代码和结果截图。 指导教师签名: 年 月 日 二、指导教师评语: 指导教师签名: 年 月 日 三、成绩 目 录 1、课程设计目的…………………………………………………………………2 2、课程设计描述及要求…………………………………………………………2 3、系统开发环境…………………………………………………………………2 4、直线的Bresenham算法原理…………………………………………………2 4.1中点Bresenham算法……………………………………………………2 4.2该进的Bresenham算法…………………………………………………5 5、圆的Bresenham算法原理……………………………………………………7 6、程序运行结果…………………………………………………………………9 7、总结……………………………………………………………………………11 8、参考资料………………………………………………………………………11 9、附录……………………………………………………………………………11 计算机图形学课程设计报告 1.课程设计目的 本学期系统学习了原理,在学期进行通过实验,进一步理解和掌握中点算法、Bresenham算法和二阶差分算法掌握以上算法生成圆的基本过程开发工具: 6.0 操作系统:Microsoft Windows XP 4. 直线的Bresenham算法原理 4.1中点Bresenham算法 给定直线的两个端点,可得到直线方程F(x,y)=y-kx-b=0且 这时直线将平面分为三个区域:对于直线上的点,F(x,y)=0;对于直线上方的点,F(x,y)0;对于直线下方的点,F(x,y)0。 由Bresenham提出的直线生成算法的基本原理是,每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别,如下图所示。 假定0≤k≤1,由于x是最大位移方向,因此每次在x方向上加1,y方向上或加1,或加0.假设当前点是P,则下一个点在与中选一。以M表示与的中点,即。又设Q是理想直线与垂直直线x=+1的交点;显然,若M在Q的下方,则离直线近,应取为下一个像素;否则取。 如前所述,直线方程为F(x,y)=y-kx-b。欲判断Q在M上方还是下方,只要把M代入F(x,y),并判断它的符号即可。 构造判别式如下: 当0时,M在直线下方,故应取。当0时,则应取正右方的。当=0时,二者一样合适,可以随便取一个。我们约定取,即 当0时,取右上方像素,欲判断再下一个像素应取哪一个,应计算 此时,的增量为1-k。 当≥0时,取正右方像素,要判断再下一个像素应取哪一个,应计算 此时,的增量为-k。 下面计算的初值。显然,直线的第一个像素在直线上,因此相应的的初始值计算如下: 由于我们使用的只是的符号,因此可以用2代替来摆脱小数。此时算法只涉及整数运算。这样,0≤k≤1时,Bresenham算法的绘图过程如下: 输入直线的两端点; 计算初始值,,; 绘制点(x,y)。判断d的符号,若d0,则(x,y)更新为(x+1,y+1),d更新为d+2-2;否则(x,y)更新为(x+1,y),d更新为d-2; 当直线没有画完时,重复步骤③,否则结束。 0

文档评论(0)

2011doc66 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档