- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贵州大学实验报告
学院:计算机科学与信息学院 专业:计算机科学与技术 班级:软件 121
姓名 袁青伟 学号 1208060222 实验组 实验时间 指导教师 李智 成绩 实验项目名称 实验二 椭圆生成算法 实验目的 通过本实验,使学生了解并掌握在光栅显示系统中圆、椭圆的生成和显示算法,进一步熟悉相关开发平台。 实验要求 1、优化后的算法:二次差分法
2、可任意指定圆心坐标。
3、书写实验报告:
(1)给出算法描述,包括理论、算法和数据结构;
(2)根据算法和数据结构:编制源程序;
(3)给出实验数据和结果
(4)编制源程序;
3、对于一些较为重要的算法,可以适当给出代码 实验原理 一、生成园弧的中点算法
算法原理:
画出第二个八分园(45°-90°),利用八对称性画出其它八分园。
1.用中点算法画第二个八分园。
从当前已获得的象素递推出下一个象素。
园弧的隐函数的形式为
F(x,y)=x2+y2-R2=0
则园弧的正负划分性为:
F(x,y)0,(x,y)在园外;
F(x,y)0,(x,y)在园内;
F(x,y)=0,(x,y)在园上。
设(xi,yi)为已确定的象素坐标,则下一个象素只能是正右方的E点或右下方的SE点。
设M是E和SE的中点,M=(xi+1,yi-0.5):
如F(M)0,则M在园内,说明E距离圆弧更近,下一点取正右方E点;
如F(M)0,则M在园外,说明SE距离圆弧更近,下一点取右下方SE点;
如F(M)=0,则M在园上,下一点取E点或SE点。
构造判别式:d=F(M)=F(xi+1,yi-0.5)=(xi+1)2+(yi-0.5)2-R2
(1)d0,中点在圆内,选正右方的E点,再下一个象素的判别式为:
dnew=F(xi+2,yi-0.5) =(xi+2)2+(yi-0.5)2-R2=d+(2xi+3)
沿正右方向,d的增量为:
(2) d=0,中点在圆外,选右下方的SE点,再下一个象素的判别式为:
dnew=F(xi+2,yi-1.5) =(xi+2)2+(yi-1.5)2-R2=d+(2xi+3)+(- yi+2)
=d+2(xi-yi)+5
沿右下方向,d的增量为:
(3)d初始值为:d0=F(1,R-0.5) =1+(R-0.5)2-R2 =1.25-R
在d的运算中包含了浮点数的运算,为了消除d中的浮点数运算,分析上述算法,可以看出,算法中取作用的只是d的符号,所以可设另一整数变量h:h=d-0.25
所以:初始化运算d0 = 1.25–R 对应于:h0=1-R
判别式 d0 对应于 h-0.25
又因为:h的初值h0为整数,运算过程中的分量也为整数(?E和?SE为整数),故h始终为整数。所以可用h代替d作判断。
其初始值:h0=d0-0.25=(1.25-R)-0.25=1-R
有以下对应关系:
h0 d0
h0 d0
h=0 d=0
算法分析:
二阶差分法:利用二阶差分降低增量的阶数
二阶差分(降低增量的阶数,用差分法消除中点算法中的乘法运算)。
中点算法中:
1,如在现有点p(xp,yp)上,对p+1点选择了E(xp+1,yp)点
(1)增量?ΔE
二阶差分增量为:
(2)增量?ΔSE
二阶差分增量为:
2,如在现有点p(xp,yp)上,对p+1点选择了SE(xp+1,yp-1)点
(1) 增量?ΔE
二阶差分增量为:
(2)增量ΔSE
二阶差分增量为:
x
y
d
(E
( SE
x=x+1 ( d0)
y
d + (E
(E+2
(SE+2
x=x+1 (d0)
y-1
d + (SE
(E+2
(SE+4
算法步骤:
1,依据上一次迭代中的d的符号来选择现在点E或SE (d0=1-R);
2,用在上一次迭代计算的和来计算新的d;
3,用移到新象素点的二次差分值,并用它来更新和移到下一点。
二、椭圆中点算法
算法原理:
中点算法可以推广到一般二次曲线如椭圆。
中心在原点的椭圆方程为:
隐函数的形式为:
a=b时,该方程表示的是圆。
椭圆具有四对称性,可只考虑第一象限的椭圆弧。
椭圆上任一点(x,y)处的法向量为:
如在p点法线两分量相等,则p点将椭圆第一象限分成两部份,上半部份法向量在y方向的分量比x方向的大,在下半部份相反。在p点:
在当前中点处,法向量(2b2 (Xp+1),2a2 (Yp-0.5))的y分量比x分量大,即:
b2 (Xp+1) a2 (Yp-0.5)
而在下一中点,不等式改变方向,则说明椭圆弧从上部分转入下部分。
与圆弧中点算法类似:确定一个象素Pi后,接着在下两个候选象素的中点计算一个判别式d=F(M)的值,由判别式的符号确定更近的点。
1.先讨论椭圆弧的上半部分(令△x=1)
设Pi(xi
您可能关注的文档
- 2014届高考数学(理)一轮复习专题集训:平面向量的数量积和平面向量的应用举例.doc
- 2014届高三数学(第25讲-平面向量及线性运算--第27讲平面向量的数量积和平面向量的应用举例,含精细解析).doc
- 2014届高三物理一轮复习-5-2、3-了解相对论(选学)-初识量子论(选学)自主学习训练-教科版.doc
- 2014届西工大附中高三第11次适应性训练理综卷(2014.05).doc
- 2014年16中初三语文模拟试卷.doc
- 2014年高考理数第四次模拟答案.doc
- 2014年高三一轮复习物理-第七章《机械能》第五讲《探究动能定理》.doc
- 2014年期中模拟试题.doc
- 2014年云南省文山州公务员招聘考试语言类练习题.doc
- 2014年重庆一中高2014级高三下期第一次月考数学(理科).doc
文档评论(0)