当前位置:文档之家› 圆的扫描转换原理

圆的扫描转换原理

确定当前点 ( , )后,可通过 ( , )的值来决定下一个点 :
1)若 ( , )<0,说明点 在圆内,则下一步应向圆外走,即 取
= +1, = 。
2)若 ( , )>0,说明点 在圆外,则下一步应向圆内走,即 取
= , = -1。
3)若 ( , )=0,说明点 在圆上,则下一步可以向圆外走,也可以向圆外走,这里规定 取 = +1, = 。
设R为弧AB的半径,记点P到原点的距离的平方பைடு நூலகம்圆的半径的平方之差为D(P),即
D(P)=( + -
根据D(P)定义,如果点Q在圆内,则D(Q)<0,如果Q在圆外,则D(Q)>0。假定 为圆弧上的点,则D( )>0,D( )<0。令
=D( )+D( )=( +1)2+ - +( -1)2+( -1)2-
正负法:该方法主要用于笔试绘图仪中,由于笔试绘图仪只有水平或垂直方向的运动,绘图笔每次只能向正右方或正下方运动,因此相应地在画圆时,只能从当前像素移动到其正右方或正下方的像素。
圆心在原点、半径R的圆方程的函数表达式为:
F(x,y)= + - =0
对于圆上的点,F(x,y)=0;对于圆内的点,F(x,y)<0;对于圆外的点,F(x,y)>0。对于第一象限内四分之一圆弧AB的绘制方法,利用对称性很容易绘制圆的其他部分。这里顺时针方向生成圆弧,并假定圆心和起点均精确地落在像素上。设起点A为 ( , ),则有 =0, =R。
Bresenham算法:画第一象限内八分之一个圆AB,从A点开始,顺时针画点,其他7个对称点即可。
从点A开始向右下方逐点寻找显示弧AB要用的点,如果 是已选中的一个表示圆弧上的点,由于圆弧在A、B两点之间斜率小于等于1,所以下一个点 ( +1, )或 ( +1, -1),选 还是选 ,取决于哪一个点更接近于弧AB。
当|D( )|<|D( )|时, <0,说明 比 距离圆弧近,应取 来显示弧AB;当|D( )|>|D( )|时, >0,应取 显示弧AB;当 =0,可在两者中任取一点,这里规定取 。显然,当 不是圆弧上的点时,根据 的正负决定取点也是正确的。
相关主题