椭圆函数作为决策参数:
fellipse(x,y)=ry2x2+rx2y2-rx2ry2
<0 (x,y)位于椭圆边界内
fellipse(x,y) =0 (x,y)位于椭圆边界上
>0 (x,y)位于椭圆边界外
•
中点椭圆算法步骤:
•
1.
输入
r
x
,r
y
和椭圆中心
(x
c
,y
c
)
,并得到中心在原点的椭圆上的第一个点。
•
2.
计算第一分象限的第
1
段椭圆曲线的决策参数的初值:
p10=ry2-rx2ry+rx2/4
•
3.
在第
1
段曲线的每个
x
k
处,从
k=0
开始,完成下列测试:假如当
p1
k
<0
,则下一个点为
(x
k+1
,y
k+1
)=(x
k
+1,y
k
)
,且:
p1
k+1
=p1
k
+2r
y
2
(x
k
+1)+r
y
2
,否则,下一个点为
(x
k+1
,y
k+1
)= (x
k
+1,y
k
-1)
,且:
p1
k+1
=p1
k
+2r
y
2
(x
k
+1)+r
y
2
-2r
x
2
(y
k
-1)
。且循环至
2r
y
2
x≥2r
x
2
y
,循环结束得到最后点
(
x0,y0
)
。
•
4.
使用第
1
段曲线计算最后得到的点
(x
0
,y
0
)
,来计算第
2
段曲线的初始决策参数:
p20=ry2(x0+0.5)2+rx2(y0-1)2-rx2ry2
•
5.
在第
2
段曲线的每个
y
k
处,从
k=0
开始,完成下列检测:假如
p2
k
>0
,则下一个点为
(x
k+1
,y
k+1
)=(x
k
,y
k
-1)
,且
p2
k+1
=p2
k
-2r
x
2
(y
k
-1)+r
x
2
,否则下一个点为
(x
k+1
,y
k+1
)=(x
k
+1,y
k
-1)
,且
p2
k+1
=p2
k
-2r
x
2
(y
k
-1)+r
x
2
+2r
y
2
(x
k
+1)
,且循环至
2r
x
2
y=0
即
y=0
。
•
6.
确定其它三个分象限中对称的点。
7.将每个计算出像素位置(x,y)移到中心在(xc,yc)的椭圆轨迹上,并按坐标画点:x=x+xc,y=y+yc