简单画圆法
算法原理:利用圆的参数方程,直接计算离散点值。
θi+1=θi+Δθ
xi+1=∥xi+rcosθi∥
yi+1=∥yi+rsinθi∥
八分画圆原则
圆有四条对称轴x=0,y=0,x=y,x=−y可以将一个圆分成八分,我们可以只扫描转换其中一份,其余七份可以坐标规律得到。
中点画圆法
类似于中点画线法,同一个套路。即是构造判别式,通过代入判别式的正负,取点,更新判别式。
圆的方程F(x,y)=x2+y2−R2,如果F(P)=0那么点P在圆上,如果F(P)>0那么P点在圆外,如果F(P)<0那么P点在圆内。
x0=0,y0=R,d0=1−R
if(di<0) di+1=di+2xi+3 xi+1=xi+1(y没有更新)
if(di>=0) di+1=di+2(xi−yi)+5 xi+1−xi+1,yi+1=yi−1(y更新了!!)
Bresenham画圆法

原理很简单:就是看d1和d2那个大,如果d1大,说明圆与竖直网格线交点离下端像素点比较近,如果d2大,说明圆与竖直网格线交点离上端像素点比较近。
d0=3−2R
if(di<0) xi+1=xi+1,yi+1=yi,di+1=di+4xi+6
if(di>=0) xi+1=xi+1,yi+1=yi−1,di+1=di+4(xi−yi)+10
中点画椭圆法
其实跟中点画线、中点画圆的思想一毛一样,都是将中点代入方程,判断正负。
只不过椭圆只有两条对称轴,这时我们的讨论范围不再是圆的[π/4,π/2],而是整个第一象限,而且还有一个问题,我们是以哪个轴作为跨步,我们从斜率为-1处将第一象限椭圆分成两部分,上半部分以xi+1=xi+1为跨步,下半部分以yi+1=yi+1为跨步。