楊 艷,黃家珩
(呂梁學院 數學系,山西 離石 033001)
圓弧曲線在CAGD中地位比較重要,一方面因為圓不能由Bézier曲線和B樣條曲線精確表示,另一方面在旋轉體的表示中,圓弧起到至關重要的作用,同時在圓弧的表示中,可以類似得到橢圓弧或橢球面的表示.
而自由曲線一般討論Bézier曲線、B樣條曲線、有理Bézier曲線和NURBS曲線.前兩者的實質是多項式,可以簡單得到圓的逼近,在[1]中詳細敘述了3次Bézier曲線逼近圓的方法.B樣條曲線逼近圓一般選用正8邊形的控制頂點,選其中相鄰4段輪換得到8條B樣條曲線進行拼接.而有理Bézier曲線是NURBS曲線的特例,故研究用有理Bézier曲線精確表示圓.
以點pi(xi,yi)(i=0,1,…,n)為控制頂點,wi(i=0,1,…,n)為權重的一條n次有理Bézier曲線的表達式為:
(1)

有理Bézier曲線有如下端點性質[2]:
P(0)=P0,P(1)=Pn,
即有理Bézier曲線的起點和終點過第一個和最后一個控制頂點,且在起點和終點的切線分別平行于最前兩個和最后兩個控制頂點的連線.這一性質用于判斷二次有理Bézier曲線控制頂點的位置.

(2)
即圓的參數方程為二次有理多項式,故用二次有理Bézier曲線表示圓弧.特別地,當t∈[0,1]時,上述表達式表示的是第一象限的四分之一圓.
另一方面,由(1)式得,以P0(x0,y0),P1(x1,y1),P2(x2,y2)為控制頂點,w0,w1,w2為權重的一條2次有理Bézier曲線的參數形式為:
(3)
對比(2)式和(3)式,令分母相同,有
w0(1-t)2+2w1(1-t)t+w2t2=1+t2,
整理為,
(w0-2w1+w2)t2+(-2w0+2w1)t+w0=1+t2,
令左右兩邊對應項系數相等,可得下列方程組
解之得權重分別為:w0=1,w1=1,w2=2.
對比(2)式和(3)式,由分量x的分子相同,有
w0(1-t)2x0+2w1(1-t)tx1+w2t2x2=r(1-t2)
整理后,令左右兩邊對應項系數相等,可得下列方程組
解得x0=r,x1=r,x2=0.
同理,對比(2)式和(3)式,由分量y的分子相同,有
w0(1-t)2y0+2w1(1-t)ty1+w2t2y2=r·2t
整理后,令左右兩邊對應系數相等,列方程組,解得y0=0,y1=r,y2=r.
綜合以上三個解,可得圓心為坐標原點,半徑為r的第一象限四分之一圓的控制頂點坐標為p0(r,0),p1(r,r),p2(0,r),對應權重分別為w0=1,w1=1,w2=2,如圖1.根據Bézier曲線與B樣條曲線的關系,可以將其表示為節點集為{0,0,0,1,1,1}的二次NURBS曲線.
對第一象限的四分之一圓進行對稱,可得整圓,如圖2,此處用四段有理二次Bézier曲線拼接生成整圓.由Bézier曲線與B樣條曲線的關系,一方面可以將其理解為四條NURBS曲線拼接生成的結果.另一方面,應用B樣條曲線的節點插值性,可以將整圓理解為節點集為
控制頂點為p0(r,0),p1(r,r),p2(0,r),p3(-r,r),p4(-r,0),p5(-r,-r),p6(0,-r),p7(r,-r)和p8(r,0),對應權重分別為w0=1,w1=1,w2=2,w3=1,w4=1,w5=1,w6=2,w7=1和w8=1的一條二次NURBS曲線.

圖1 2次有理Bézier表示的四分之一圓圖2 2次有理Bézier表示的整圓


如圖3為圓心在坐標原點,半徑為r,圓心角為θ的圓弧曲線P0*P2*,其中P0*位于x軸.為了寫出曲線的2次有理Bézier表達式,需找出3個控制頂點P0,P1,P2和3個權重w0,w1,w2.根據其端點性質知,P0=P0*,P2=P2*,且P1為過P0,P2切線的交點,因此圖中P0P1垂直于x軸.

圖3 2次有理Bézier曲線表示任意大小圓心角的圓弧曲線



綜上所述,圓心在坐標原點,半徑為r,圓心角為θ的圓弧曲線P0*P2*,用2次有理Bézier曲線表示時,控制頂點為
P2(rcosθ,rsinθ),權重為
w2=1.因此該圓弧2次有理Bézier表達式為
(4)






圖4 拼接2次有理Bézier表示的任意大小圓心角的圓弧曲線



圖4(b)、(c)與圖3(b)、(c)對比,經分割后生成的圓弧曲線參數性和凸包性均較好.
圓弧曲線的2次有理Bézier曲線和2次NURBS曲線是CAGD中常用的方法,研究比較透徹,但是用圓的參數方程直接有理化的結果比較容易理解.同時一般的做法都是經過分割成銳角進行的,但是在實驗過程中發現不分割的結果也是精確的,為了弄清楚這個問題,做了詳細的實驗,發現確如文獻[5]所述,分割后能夠克服凸包性和參數化差的缺陷.文中重點從圖形角度直觀凸包性和參數化.