《圆弧算法介绍.pptx》由会员分享,可在线阅读,更多相关《圆弧算法介绍.pptx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、只画1/8圆,其余点通过对称关系求得。圆的特征:八对称性。只要扫描转换八分之一圆弧,就可以求出整个圆弧的象素集中点画圆法第1页/共18页考虑中心在原点,半径为R的第二个8分圆,构造判别式(圆方程)根据d的正负来判断是取P1还是P2。即判断中点M在圆内还是在圆外?第2页/共18页1)若 d=0,则应取P2()为下一象素,而且下一象 素的判别式为 第 一个象素是(0,R),判别式d的初始值为两种情况:第3页/共18页为了进一步提高算法的效率,可以将上面的算法中的浮点数改写成整数,将乘法运算改成加法运算,即仅用整数实现中点画圆法。使用e=d-0.25代替de0=1-R第4页/共18页算法描述:Mid
2、PointCircle(int r int color)int x,y;float d;x=0;y=r;d=1.25-r;circlepoints(x,y,color);/显示圆弧上的八个对称点 while(x=y)if(d0)d+=2*x+3;else d+=2*(x-y)+5;y-;x+;circlepoints(x,y,color);第5页/共18页中点画圆举例:第6页/共18页象限判别通过分析,发现在进行绘制圆弧曲线时,需要考虑轨迹点所在象限的情况,因此需要进行象限的判别。对于在坐标轴上的点,需要根据绘制圆的方向来决定。ABCD第7页/共18页3.4 Bresenham算法仍然考虑圆心
3、在原点的一个第一象限的圆弧 。对于圆弧上的点p(x,y),其下一个可选择的点如图。H(x+1,y)D(x+1,y-1)当 ,应取H点,H离圆弧近当 ,应取L点,L离圆弧近令:第8页/共18页起始点A 其中 第2点有当 ,应取H点,此时当 ,应取L点,此时第9页/共18页算法描述:procedure arc(radius:integer)var x,y,d:interger;begin x:=0;y:=radius;d:=3-2*radius;while xy dobeginplot(x,y);if dyc dobeginplot(x,y);if f0 then begin f:=f-2*(y-
4、yc)+1;y:=y-1;end;elsebeginf:=f+2*(x-xc)+1;x:=x+1;end;end;if y=yc then plot(x,y);end;第13页/共18页举例:半径为R,圆心为(0,0),A起点(0,6)d1=3-2*6=-9xyd00 6F0=0116F1=1215F2=-10325F3=-7435F4=-2545F5=5644F6=-4754F7=5853F8=-2963F9=91062F10=4116 1F11=112 600 1 2 3 4 5 66543210第14页/共18页3.5 圆的多边形迫近法考虑圆心在内接正多边形的一个顶点:半径为R cp的幅角为则有cos(+)=coscossinsinsin(+)=sin cos cos sin 第15页/共18页over第16页/共18页第17页/共18页感谢您的观看。第18页/共18页