1,输入圆心(xc, yc)和圆的半径 r,得到圆周上的第一个点(x0, y0)=(0,r);
(假设起始点为坐标原点,后面将通过坐标平移来处理非圆心在圆点)
2,计算决策关键参数的初始值,P = 5/4 - r(pk = (xk+1)2+(yk-0.5)2-r2, 当 x=0, y=r可以推出P0);
3,在每个Xk的位置,从k =0 开始,更具决策值P来判断:
如果P<0,下一个点的位置为(Xk+1,Yk);
并且执行P = P + 2*(Xk+1)+1;
如果P>=0,下一个点的位置为(Xk+1,Yk-1);
并且执行P = P + 2*(Xk+1)+1 - 2*(Yk-1);
4,通过对称原理计算其他7个对称相关点;
5,移动坐标到圆心点(xc,yc)
X = X + xc;
Y = Y + yc;
6,如果X<Y重复执行3到5的步骤,否则结束该算法