- 13
- 0
- 约3.67千字
- 约 4页
- 2016-12-05 发布于重庆
- 举报
图形学实验2-三-画圆
实验(三) 圆的生成算法
一、实验目的
编写圆的扫描转换算法程序,验证算法的正确性。
二、实验任务(2学时)
编写中点画圆法的扫描转换程序,考虑原点在(x0,y0)处程序的改动;
三、实验内容
圆的Bresenham算法
设圆的半径为r。先考虑圆心在(0, 0),并从x=0、y=r,开始的顺时针方向的1/8圆周的生成过程。在这种情况下,x每步增加1,从x=0开始,到x=y结束。即有
xi+1 = xi + 1
相应的yi+1则在两种可能中选择:
yi+1 = yi或者yi+1 = yi(1
选择的原则是考察精确值y是靠近yi还是
靠近yi(1(如右图),
计算式为
y2 = r2((xi+1)2
d1 = yi2(y2 = yi2(r2+(xi+1)2
d2 = y2((yi(1)2 = r2((xi+1)2((yi(1)2
令pi=d1(d2,并代入d1、d2,则有
pi = 2(xi+1)2 + yi2 + (yi(1)2(2r2
pi称为误差。如果pi0则yi+1=yi,否则yi+1=yi(1。
pi的递归式为
pi+1 = pi + 4xi +6+2(yi+12( yi2) (2(yi+1(yi)
pi的初值由上式代入xi=0,yi=r而得
p1 = 3(2r
根据上面的推导,圆周生成算法思想如下:
⒈ 求误差初值,p1=3(2r,i=1,画点(
原创力文档

文档评论(0)