圆的扫描转换
可以把问题简化为如何画一个在原点的圆。其他位置的圆可以通过平移原点位置同样大小的圆得到。
八分法画圆
利用简单方程
利用极坐标方程
中点Bresenham画圆法
中点Bresenham算法的核心思想:把上下两个相邻像素坐标的中点带入解析函数,根据结果的正负,选择被在圆上的那个像素。移动x坐标所在位置,再选择两个相邻像素坐标的中点反复执行以上步骤。前后两次的中点坐标带入解析函数的差是一个固定增量,所以不需要每次带入解析函数,只需要增加增量再比较即可。
算法步骤
一点思考:只考虑第一象限靠上的八分之一圆,保证了斜率的绝对值小于1,此部分的最大位移方向在x轴上。
椭圆又如何?椭圆的中点Bresenham算法
分界点:最大位移方向x轴和y轴方向的点。
引入法向量找到分界点
同样引入中点位置帮助判别候选点的实际位置
第一象限椭圆上半部分