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

直线圆椭圆生成算法.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

中点画圆法MP1P2=(xp+1)2+(yp-0.5)2-R2若d0,则P1为下一个象素,那么再下一个象素的判别式为:d=F(M)=F(xp+1,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3即d的增量为2xp+3.d1=F(xp+2,yp-0.5)中点画圆法若d=0,则P2为下一个象素,那么再下一个象素的判别式为:d1=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+(2xp+3)+(-2yp+2)即d的增量为2(xp-yp)+5.d的初值:d0=F(1,R-0.5)=1+(R-0.5)2-R2=1.25-RMP1P2中点画圆法MidpointCircle(intr,intcolor){intx,y;floatd;x=0;y=r;d=1.25-r;drawpixel(x,y,color);while(xy){if(d0){d+=2*x+3;x++}else{d+=2*(x-y)+5;x++;y--;}}}为了进一步提高算法的效率,可以将上面的算法中的浮点数改写成整数,将乘法运算改成加法运算,即仅用整数实现中点画圆法。使用e=d-0.25代替de0=1-R中点画圆法上述算法能否再改进呢?注意到d的增量是x,y的线性函数,每当x递增1,则d的增量递增Δx=2每当y递减1,则d的增量递增Δy=2Δx初始值=3;Δy初始值=-2r+2见173页算法。010302040506中点画圆法Bresenham画圆算法现在从A点开始向右下方逐点来寻找弧AB要用的点。如图中点Pi-1是已选中的一个表示圆弧上的点,根据弧AB的走向,下一个点应该从Hi或者Li中选择。显然应选离AB最近的点作为显示弧AB的点。01假设圆的半径为R,显然,当xhi2+yhi2-R2≥R2-(xli2+yli2)时,应该取Li。否则取Hi。02令di=xhi2+yhi2+xli2+yli2-2R2显然,当di≥0时应该取Li。否则取Hi。03Bresenham画圆算法=2xi2+4xi+2yi2-2yi-2R2+304di+1=(xi+1)2+yi2+(xi+1)2+(yi-1)2-2R205剩下的问题是如何快速的计算di。设图中Pi-1的坐标为(xi-1,yi-1),则Hi和Li的坐标为(xi,yi-1)和(xi,yi-1-1)01=2xi2+2yi-12-2yi-1-2R203di=xi2+yi-12+xi2+(yi-1-1)2-2R202第三章直线、圆、椭圆

生成算法3.1直线段扫描转换3.2圆弧扫描转换3.3椭圆弧扫描转换3.1直线段的扫描转换算法DDA算法中点画线法Bresenham画线算法假定直线的起点、终点分别为:(x0,y0),(x1,y1),且都为整数。1(Xi+1,Yi+k)2(Xi,Int(Yi+0.5))3(Xi,Yi)4

文档评论(0)

yingjiali1998 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档