收藏 分享(赏)

§3.3椭圆的生成——中点算法.doc

上传人:gnk289057 文档编号:6545879 上传时间:2019-04-16 格式:DOC 页数:3 大小:62KB
下载 相关 举报
§3.3椭圆的生成——中点算法.doc_第1页
第1页 / 共3页
§3.3椭圆的生成——中点算法.doc_第2页
第2页 / 共3页
§3.3椭圆的生成——中点算法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、13.3 椭圆的生成中点算法是椭圆的特例,所以可以直接扩展 Bresenham 的画圆光栅算法。但是,Van Aken 指出 Bresenham 画圆算法扩展到椭圆不能保证实际椭圆与所选像素之间的线性误差最小。他给出了一种用于椭圆的技术,称为中点算法。中心在原点、轴对称椭圆方程为:或f(x,y)=b2x2+a2y2-a2b2=0其中 a,b 分别是半长轴和半短轴,该椭圆与 x 轴相交于 x=a,与 y 轴相交于y=b。这里只考虑椭圆在第一象限的部分,其它象限的部分可作相应的对称变换而得。中心不在原点的椭圆可通过平移得到得到。在这段椭圆弧上,y 随 x 的增加而减小,即 y 是 x 的单调递减函

2、数。在这段圆弧上,以切线斜率为-1 的点(即法向量的两个分量相等的点)将其分为上下两部分。如果以点 x=a,y=0 为起点按逆时针方向生成椭圆,当前像素为 S(xi,yi),那么在区域 1,下一个像素只有两种可能,即 V(xi,yi+1) 、D(x i-1,yi+1)。它们的中点为 M(xi-0.5,yi+1)。圆 12byax-bb-a a XY区域 1区域 2 dxy2如果椭圆通过 M 的右部,则取像素 V,如果通过 M 的左侧,则选择像素 D。在区域 2,下一个像素只有两种可能,即 H(xi-1,yi) 、D(x i-1,yi+1)。它们的中点为 M(xi-1,yi+0.5)。如果椭圆通

3、过 M 的上部,则取像素 D,如果通过 M 的下部,则选择像素 H。而最大线性误差为:-1/2e1/2那么,判断椭圆通过中点 M 的左右或上下的方法是什么呢?将决策变量 di定义为 f(x,y)在中点处值的两倍。首先考察区域 1:如果椭圆通过中点 M,则 d1i=0,但是椭圆很可能要通过中点 M 的右部或左部(xi-0.5+e1,yi+1)。因为该点在椭圆上,因此有:将 d1i/2=f(xi-0.5,yi+1)代入,则:(Xi,yi)(Xi,yi+1)SVD(Xi-1,yi+1)中点 Me1SD(Xi,yi)(xi-1,yi)(xi-1,yi+1)H中点 Me2222 22)4()1( )5.

4、0)1,5.0(2 bayaxbyxf iiii iiiii 01)5.0(1),5.0()1,5.0( 2222 ebxebyxf ayabyexf iiiii3d1i=-4b2e1(xi-0.5)-2b2e12=-2b2e1(2xi-1)+e1注意到 d1i的符号与 e1 的符号正好相反。因为-0.5(1-e1)/2 的条件是 xi3/4。考虑到 xi为整型变量,x i3/4 相当于 xi0。因此,d 1i0,在(x i,yi+1)处的像素 V 被选中。d1i0,则 e1-1/2。考虑到 yi为整型变量 yi0。因此,d 2i0,在(x i-1,yi+1)处的像素 D 被选中。d2i0,则 e20,在(x i-1,yi)处的像素 H 被选中。d2i=0,约定像素 D 被选中。要完成整个算法,还应包括从区域 1 切换到区域 2 以及开始和结束算法的条件。从区域 1 切换到区域 2 的条件是 b2(xi-0.5)=a2(yi+1)。算法开始 x=a,y=0。算法结束 x=0。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报