1、第五章 基本图形元素的生成算法5.1 直线的生成算法5.2 圆的生成算法5.3 椭圆的生成算法5.4 区域填充算法第五章 基本图形元素的生成算法计算机图形学5.2.1圆的中点转换算法本节我们只考虑中心在原点的圆弧的扫描转换算法,对于圆心在任意点的圆可通过平移后再扫描转换,再平移到原来的位置。 圆的八对称性第五章 基本图形元素的生成算法计算机图形学圆的特征圆被定义为到给定中心位置 (xc,yc)距离为 r的点集。圆心位于原点的圆有四条对称轴 x=0,y=0,x=y和 x=-y。 若已知圆弧上一点 (x,y),可以得到其关于四条对称轴的其它 7个点,这种性质称为 圆的八对称性。因此,只要扫描转换八
2、分之一圆弧,就可以求出整个圆弧的象素集。 第五章 基本图形元素的生成算法计算机图形学显示圆弧上的八个对称点的算法:void CirclePoints(int x,int y,int color) putpixel(x,y,color); putpixel (y,x,color);putpixel (-x,y,color); putpixel (y,-x,color);putpixel (x,-y,color); putpixel (-y,x,color);putpixel (-x,-y,color);putpixel (-y,-x,color); 第五章 基本图形元素的生成算法计算机图形学两种
3、直接离散的方法 :离散点 :离散角度 :开根,三角函数运算,计算量大,不可取。 利用隐函数方程 :x2+y2=r2(Xi,yi=sqrt(r2-y2)-(Xi,yi)取整利用参数方程 x=rcos()y=rsin()取整( rcos(i) ,rsin(i)第五章 基本图形元素的生成算法计算机图形学圆弧的正负划分性F(x,y)=x2+y2-r2 =0 圆弧外的点: F(X, Y) 0圆弧内的点: F(X, Y) 0第五章 基本图形元素的生成算法计算机图形学生成圆弧的中点算法考虑对象:第二个八分圆,第一象限的八分之一圆弧 . p1p2(xp,yp)第五章 基本图形元素的生成算法计算机图形学问题:
4、与直线情形类似圆弧的隐函数 :F(X,Y)=X2+Y2-R2=0, 中点 M=(xp+1,yp-0.5)考虑对象:第二个八分圆,第一象限的八分之一圆弧 当 F(M) 0时, M在圆内,说明 P1距离圆弧更近,取 P1;当 F(M) =0时, P取 P2p1p2(xp,yp)第五章 基本图形元素的生成算法计算机图形学构造判别式d=F(M)=F(Xp+1,Yp-0.5)=(Xp+1)2+(Yp-0.5)2-R2 当 d 0时, M在圆内,说明 P1距离圆弧更近,取P1;当 d =0时, P取 P2得到一个初步算法:y=rfor(x=0;x=0 右下方 y=y+1;第五章 基本图形元素的生成算法计算机图形学考虑用 d的增量1)若 d 0, 取 P1, 再下一个象素的判别式为:d1=F(Xp+2,Yp-0.5)= (Xp+2)2+(Yp-0.5)2-R2 = (Xp+1+1)2+(Yp-0.5)2-R2 = (Xp+1 )2 +2(Xp+1 ) +1+(Yp-0.5)2-R2 =d+2Xp+3,沿正右方向, d的增量为 2Xp+3;