|
|
|
|
|
|
|
|
|
|
|
|
|
|
第二节
圆的扫描转换算法 |
|
|
|
|
|
|
|
|
|
|
|
|
从计算
当≥0时,应选D点,即选
当<0时,应选H,即选
画圆的起始点是(0,R),即x1=0,y1=R,代入前式,令i=1,就得到:
void BresenhamCircle(int R)
{ int x,y,p; x=0; y=R; p=3-2*R;
for(;x<=y;x++) {
SetPixel(x,y); if(p>=0)
{ p+=4*(x-y)+10;
y--; }
else { p+=4*x+6;
} }
} 只需修改语句SetPixel(x,y),画八个对称的点,就可以画出全部圆周。若加一个平移,就可以画出圆心在任意位置的圆周。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
上一页
| 下一页 |
|
|