《第三章直线、圆、椭圆的生成》由会员分享,可在线阅读,更多相关《第三章直线、圆、椭圆的生成(6页珍藏版)》请在金锄头文库上搜索。
1、 原理:设圆的方程为F(x,y)=X2+ Y2- R2 =0; 假设求得Pi的坐标为(xi,yi); 则当Pi在圆内时- F(xi,yi) 向右- 向圆外 Pi在圆外时- F(xi,yi)0 - 向下- 向圆内即求得Pi点后选择下一个象素点Pi+1的规则为: 当F(xi,yi) 0 取xi+1 = xi+1,yi+1 = yi; 当F(xi,yi) 0 取xi+1 = xi, yi+1 = yi - 1; 这样用于表示圆弧的点均在圆弧附近,且使 F(xi,yi) 时正时负,故称正负法。快速计算的关键是F(xi,yi) 的计算,能否采用增 量算法?+若F(xi,yi) 已知,计算F(xi+1,y
2、i+1) 可分两种 情况:+1、F(xi,yi)0- xi+1 = xi+1,yi+1 = yi;+ - F(xi+1,yi+1)= (xi+1 )2 +(y i+1 )2 -R2+- = (x i+1)2+ y i2-R2 = F(x i,yi) +2xi+1+2、 F(xi,yi)0- xi+1 = xi,yi+1 = yi -1;+ - F(xi+1,yi+1)= (xi+1 )2 +(y i+1 )2 -R2+- = x i2+(y i 1)2-R2 = F(x i,yi) - 2yi+1+3、初始值:略正负画圆算法程序+ 思想:当一个正多边形的边数足够多时 ,该多边形可以和圆无限接近。即+因此,在允许的误差范围内,可以用正 多边形代替圆。 +设内接正n边形的顶点为Pi(xi,yi), Pi的幅 角为i ,每一条边对应的圆心角为a,则有+xi =Rcos i +yi =Rsin i内接正n边形代替圆计算多边形各顶点的递推公式Xi+1 Rcos( a+ i) = Yi +1 Rsin (a+ i)Xi+1 cos a- sin a Xi= Yi +1 sin a cosa Yi因为: a是常数, sin a, cosa只在开始时计算一次 所以,一个顶点只需4次乘法,共4n次乘法,外 加直线段的中点算法的计算量。