第三章直线、圆、椭圆的生成.ppt
生成圆弧的正负法,原理:,设圆的方程为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,yi+1)可分两种情况:1、F(xi,yi)0-xi+1=xi+1,yi+1=yi;-F(xi+1,yi+1)=(xi+1)2+(yi+1)2-R2-=(xi+1)2+yi2-R2=F(xi,yi)+2xi+12、F(xi,yi)0-xi+1=xi,yi+1=yi-1;-F(xi+1,yi+1)=(xi+1)2+(yi+1)2-R2-=xi2+(yi 1)2-R2=F(xi,yi)-2yi+13、初始值:略,生成圆弧的正负法,正负画圆算法程序,圆的内接正多边形逼近法,思想:当一个正多边形的边数足够多时,该多边形可以和圆无限接近。即因此,在允许的误差范围内,可以用正多边形代替圆。设内接正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次乘法,外加直线段的中点算法的计算量。,