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

第三章 二维图形的生成_直线和圆.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 二维图形的生成_直线和圆

* 西安工程大学计算机图形学 * (x,y) (x+1,y-1) (x,y-2) (x+1,y-2) 3、若下一像素取的是V V坐标为: V(x,y-1) 其误差项 * 西安工程大学计算机图形学 * Bresenham_Ciecle(int r,int color) { int x,y, deltaD,deltaHD,delta2,direction; x=0; y=R; deltaD=2*(1-R); //△D初始值 while(y=0) { putpixel(x,y,color); if(deltaD0) { deltaHD=2*(deltaD+y)-1; if(deltaHD=0) direction=1; //即选H else direction=2; //即选D } Bresenham画圆算法参考程序 * 西安工程大学计算机图形学 * else if(deltaD0) { deltaDV=2*(deltaD-x)-1; if(deltaDV=0)direction=2; else direction=3; } else direction=2; switch(direction) { case1: x++; deltaD+=2*x+1; break; case2: x++; y--; deltaD+=2*(x-y+1); break; case3: y--; deltaD+=(-2*y+1); break; }/*switch*/ }/*while*/ }/*Bresenham_Ciecle*/ * 西安工程大学计算机图形学 * Bresenham画圆算法 现在从(0,R)点开始向右下方逐点来寻找圆弧上的点。如图中点Pi是已选中的一个表示圆弧上的点,根据圆弧的走向,下一个点应该从Hi或者Li中选择。显然应选离圆弧最近的点作为显示圆弧的点。 Pi Hi Li 假设圆的半径为R,显然,当 xhi2 + yhi2 -R2 ≥ R2 - (xli2 + yli2) 时应该取Li。否则取Hi。 令di = xhi2 + yhi2 + xli2 + yli2 – 2R2 显然, 当di ≥0 时应该取Li。否则,取Hi。 * 西安工程大学计算机图形学 * di = (xi+1)2+yi2+(xi+1)2 +(yi-1)2-2R2 =2(xi+1)2 + 2yi2 - 2yi +1- 2R2 当di0 时-取Hi (xi+1,yi) ,则 Pi Hi Li 下步就是如何快速的计算di。设图中Pi的坐标(xi,yi)则Hi 和Li 的坐标为(xi+1,yi)和(xi+1,yi-1 ) di+1=(xi+1+1)2+yi2+(xi+1+1)2+(yi-1)2- 2R2 =2(xi+1)2+ 2yi2 - 2yi +1 - 2R2 + 4xi + 6 =di + 4xi + 6 Bresenham画圆算法 * 西安工程大学计算机图形学 * 当di≥0时-取Li(xi+1,yi-1 ) ,则 di+1 = (xi +1+1)2 +(yi-1)2 + (xi+1+1)2 +(yi-1-1)2 -2R2 =di + 4(xi - yi)+10 Pi Hi Li 易知 x0=0,y0=R,x1=x0+1 因此 d0=12 +y02+12+(y0-1)2 -2R2 = 3 - 2y0 = 3 - 2R Bresenham画圆算法 * 西安工程大学计算机图形学 * 生成圆弧的正负法 原理: 设圆的方程为F(x,y)=X2+ Y2- R2=0; 假设求得Pi的坐标为(xi,yi);则 当Pi在圆内时- F(xi , yi)0 - 向右- 向圆外 当Pi在圆外时- F(xi , yi)0 - 向下- 向圆内 * 西安工程大学计算机图形学 * 即求得Pi点后选择下一个象素点Pi+1的规则为: 当F(xi,yi) ≤0 取xi+1 = xi+1,yi+1 = yi; 当F(xi,yi) >0 取xi+1 = xi, yi+1 = yi - 1; 这样用于表示圆弧的点均在圆弧附近,且使F(xi,yi) 时正时负,故称正负法。 快速计算的关键是F(xi,yi) 的计算,能否采

文档评论(0)

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

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

1亿VIP精品文档

相关文档