- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 毕业设计(论文)-基于GSM的车辆紧急求救系统的设计.doc
- 毕业设计(论文)--基于单片机的智能水族箱控制系统_鱼缸.DOC
- 毕业设计(论文)-如何提高铁路客运服务质量.doc
- 毕业设计(论文)-学校用电收费管理系统毕业设计.doc
- 毕业设计(论文)-液压剪板机的结构设计.doc
- 毕业设计(论文)-重庆会展业现状及发展对策探讨.doc
- 毕业设计与论文(基于MSP430单片机智能阀门控制器的硬件设计).doc
- 茶叶的保管保养.ppt
- 茶叶的保管养护.ppt
- 成语中的博弈论.doc
- 2025年春新北师大版八年级物理下册全册课件.pptx
- 2025年春新北师大版八年级物理下册全册教学课件.pptx
- 2025年秋季新北师大版八年级上册物理全册教学课件.pptx
- 2025年秋季新人教版九年级上册化学全册课件.pptx
- 2025年新人教版八年级上册物理全册课件.pptx
- 2025年秋季新人教版九年级上册化学全册教学课件(新版教材).pptx
- 新人教版七年级上册英语全册课件(2025年新版教材).pptx
- 锂离子电池前驱体磷酸铁合成方法研究现状及展望.docx
- 2024年东盟石油和天然气更新报告(英文版)-东盟.docx
- DB3209_T 1207.2-2022 建设工程档案管理 第二部分:房屋建筑工程文件归档和档案移交范围.docx
文档评论(0)