椭圆的扫描转换.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


f
选择(xk 1, yk ) (xk 1, yk ) f (xk
1,
yk
1)
0时
选择(xk 1, yk 1)
定义判别参数:
dk f (xk 1, yk ) f (xk 1, yk 1)
Bresenham画圆算法(3)
dk (xk 1)2 yk2 r2 (xk 1)2 ( yk 1)2 r2
xi1 yi1
cos sin
sinxi
cos
yi
可以证明:该递推公式关于误差稳定。
(xk , yk )
(xk 1, yk )
(xk 1,yk1)
圆弧上可选点情况
Bresenham画圆算法(2) (xk , yk )
定义:f (x, y) x2 y2 r 2
(xk 1, yk )
(xk 1,yk1)
显然满足:
当 f (xk 1, yk ) f (xk 1, yk 1) 0时
• 椭圆的扫描转换
➢ 中点画法
• 若干相关问题
圆的表示
原始定义:
(x x0 )2 ( y y0 )2 R
等价定义:

x2 y2 R2
((x0 , y0 ) 偏移)

y R2 x2

x R cos
y
R
sin
[0,2 ]
代数离散法
x R cos
y
R
sin
{0,..., }
dk 0 dk 0
续:
设: pk dk 0.25
则判别量的初值为:
p0 1 r
显然dk 0与pk 0.25以及pk 0具有等价布尔值。
可替代的高效算法:
pk 4dk
结论
则:
p0 1 r
pk 1
pk pk
2xk 3 2(xk yk
)
5
xk 1 yk 1
xk 1
圆的扫描转换的数学模型
• 找到逼近如下圆弧线的像素点集合:
x2 y2 R2
y x0
• •
切线斜率范围: 1 k 0 取x为自变量
中点画圆算法的原理
P=(xk,yk)
E
M SE
当dk 0,选择(xk 1, yk 1); ME 当dk 0,选择(xk 1, yk )
MSE
Previous Choices for Choices for
2
y R2 x2 x {0,1,...,R}
效率低
圆的属性分析
对称性
(-x•,y) (-y,x)•
(x•,y) • (y,x)
正负划分性
(-y,-x) • •
(-x,-y)
• (y,-x) (x•,-y)
定义圆的方程 : f (x, y) x2 y2 R2 0
则: f (x, y) 0时,点(x, y)在圆的外侧; f (x, y) 0时,点(x, y)在圆的内侧.
2 k 1
2 4
dk1 0 dk1 0
d
2 0
5 2r
中点画圆算法伪代码
Void MidPointCircle(int r, int color) { int x,y,d;
x=0;y=r;d=1-r; delta1=3;delta2=5-2r; drawpixel(x,y,color); while(y>x){
if(d<0){ d+=delta1; delta2+=2; } else{ d+=delta2; delta2+=4; y--} delta1+=2; x++; drawpixel(x,y,color); }//while }//end
Bresenham画圆算法(1)
• 原理:选择与圆心距离与半径之差较小的一点。
( yk ( yk
0.5)2 1.5)2
r2 r2
dk 0 dk 0
(
xk
(xk
1) 2 1) 2
2xk 2xk
3 ( yk 3 ( yk
0.5)2 0.5)2
r2 2 yk
2
r2
ddkk
2xk 3 2(xk yk
)
5
dk 0 dk 0
d0 f (1, r 0.5) 1 (r 0.5)2 r 2 1.25 r
yk yk
1
pk 0 pk o
pk 0 pk 0
二阶差分方法
任意多项式均可使用该方法实现增量计算
ddk1k2
2xk 3 2(xk
yk
)
5
可使用增量运算
d
1 k
2xk
3
2( xk 1
1) 3
(2 xk 1
3)
2
d
1 k 1
2
d
1 0
3
类似地:
d
2 k
2( xk
yk
)
5
d d
2 k 1
xyii
r r
c s
osi ini
圆的内接正多边形迫近法(2)
• 使用增量计算确定多边形顶点:
xi1 r cos(i ) xi cos yi sin
同理: yi1 r sin(i ) xi sin yi cos
pi 1
pi
i
圆的内接正多边形迫近法(3)
上述递推公式可用矩阵形式表示为:
•以最高点为初始点,计算判别量初值 (xk , yk ) •再根据判别量的正负确定递推关系
(xk 1, yk )
(xk 1,yk1)
•递推关系的确定需根据右图分别不同
情况进行讨论(去掉绝对值符号,并进
Biblioteka Baidu
行化简)
圆弧上可选点情况
Bresenham画圆算法(4)
初始值的计算
d0 f (1, r) f (1, r 1) 12 r 2 r 2 12 (r 1)2 r 2
1 2r 2 3 2r
利用增量计算方法加速判别参数的计算
dk 1
ddkk
4xk 6 4(xk yk
)
10
dk 0 dk 0
圆的内接正多边形迫近法
圆的内接正多边形迫近法(1)
pi 1
pi
i
圆的多边形迫近
定义圆的方程: x2 y2 r 2 内接正n边形顶点
pi (xi , yi ), i 0,1,, n 1满足:
第三章 基本图形生成算法
授课人:张勇
北京工业大学
回顾:直线扫描算法
• 数值微分法DDA • 中点画线法 • Bresenham画线法
确定当前点的下一点的产生方法 ,确定判别式,实现增量计算
第三节 圆与椭圆的扫描转换
• 圆的扫描转换
➢ 中点画圆算法 ➢ Bresenham画圆算法 ➢ 内接正多边形迫近法
pixel
current pixel next pixel
判别量定义:
dk
f (M )
f (xk
1, yk
1) 2
续:
dk 1 f (xk 1 1, yk 1 0.5)
f f
( xk ( xk
2, 2,
yk yk
0.5) 1.5)
dk 0 dk 0
(
xk
( xk
2)2 2)2
相关文档
最新文档