椭圆的算法原理.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
椭圆的算法原理 圆心在原点、长半轴为 a短半轴为b的椭圆方程的隐函数表达 式为: 2 2 2 2 2^2 F (x, y)二 b x ay - a b = 0 椭圆将平面划分成三个区域:对于椭圆上的点, F(x , y) = 0;对于椭圆外的点,F (x, y) 0;对于椭圆内的点, F (x, y)v 0,如下图所示。 考虑到椭圆对称性,可以用对称轴 x= 0, y= 0,把椭圆 分成4等份。只要绘制出第一象限内 1/4椭圆弧,如图3-10 的阴影部分I和H所示,根据对称性就可绘制出整个椭圆, 这称为四分法绘制椭圆算法。已知第一象限内的点 P (x, y),可以顺时针得到另外 3个对称点:P (x, — y), P (-x,— y), P (— x, y)。 在处理第一象限的1/4椭圆弧时,进一步以法矢量两个 分量相等的点把它分为两部分,上半部分I和下半部分H。 该椭圆上一点P (x, y)处的法矢量为: 2a2yjdF dF 2a2yj N (x, y) i 厂 2b xi c x c y 式中,i和j是沿x轴向和沿y轴向的单位矢量。 在图3-11所示的部分I的 AC椭圆弧段,法矢量的x向 分量小于y向分量,斜率 k处处满足|k|v 1, |^x| △ y|, 所以x方向为主位移方向;在C点,法矢量的x向分量等于 y向分量,斜率 k满足k =— 1, △ x|=|Ay|;在部分□的 CB椭圆弧段,法矢量 x向分量大于y向分量,斜率k处处 满足|k| 1, |^y| △ x|,所以y方向为主位移方向。 ,b2 ,b2/ a2 b2 图 3-11 椭圆的中点Bresenham算法的原理:在部分I:每次在 主位移x方向上走一步,y方向上退不退步取决于中点偏差 判别式的值;在部分每次在主位移方向 y上退一步,x 方向上走不走步取决于中点偏差判别式的值。 A(0, b) 4 B (a, 0) B (a, 0) 图3-12輛圖中点馭/n血尊法原理 先考虑图3-12所示部分I的AC段椭 圆弧。此时中Bresenham画椭圆算法要从A J 2 +沪)顺时针确(0, b)到 J 2 +沪)顺时针确 a2 + b2 , a2 + b2 , b 定顺时针确定最佳逼近于该段椭圆弧的像 素点集Q 由于x方向为主位移方向,假定当前点是 P (xi, yi), 下一步只能在正右方的像素 Pu (x i+ 1, y i)和右下方的像 素 Pd(x i+ 1,yi — 1)中选取。 再考虑图3-12所示部分CB段椭圆弧。此 时中Bxesenham?椭圆算法要从C (/(a?U) (/ (a?U)顺时针确定最佳逼近于该段椭圆弧 b2 / 2 +h2 )到” 像素点集。 由于y方向为主位移方向,假定当前点是 P(xi,yi), 下一步只能在正下方像素 Pl (x i, y i - 1)和右下方的像素 Pr (x i + 1, yi — 1)中选取。 1、构造上半部分I中点偏差判别式 在上半部分I, x方向每次加1, y方向上减不减1取决 于中点偏差判别式的值。从 P (xi, yi)走第一步,为了选 取下一像素点的,需将 Pu (x i + 1, y i )和Pd (x i + 1, yi -1)的中点M (x i + 1, y i— 0.5)代入隐函数,构造中点 偏差判别式: di 二卩仏皿)十(人 1$ -0.5)=『以 1)2 a2A —0.5)2—a2b2 当d10时,中点M在椭圆内,下一像素点应点亮 Pu, 即y方向不退步;当 d0时,中点M在椭圆外,下一像素 点应点亮Pd,即y方向退一步;当 d = 0时,中点M在椭 圆上,Pu、Pd和椭圆的距离相等,点亮 Pu或Pd均可,约 定取Pd,如图3-13所示。 因 itk 1^1 = “ 兀 (1 0) 1 (心) Pu Cxi+1, yD Cxi, yi) Cxi, yi) 2、上半部分I的递推公式 图3-13中,为了能够继续判断椭圆上的每个点, 需要给 出中点偏差判别式d1的递推公式和初始值。 1_i—『i-M「)?——■O——()—OM 1 _i — 『i-M 「) ?—— ■O——( )— O M (xi + Q dKO p 1, --M () I + 2, yi-0.5) 4 M Cx Cxi, yD Mlxi + Q d1^0 3.5) 3、中点偏差判别式的递推公式 现在如果考虑主位移方向再走一步,应该选取哪个中点 代入中点偏差判别式以决定应该点亮的像素,如图 3-14所 示,分两种情况讨论。 ⑴当d10时,下一步的中点坐标为: M (x i+ 2, y i-0.5)。所以下一步中点偏差判别式为: %+i)二尸(兀 +2」—0.5)二护(兀 +2丫+於@-0.5)2-^2 二

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档