田 良,彭豐富
(桂林電子科技大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣西桂林 541004)
一種雙曲拋物面上樣條曲線(xiàn)的等距曲線(xiàn)算法
田 良,彭豐富
(桂林電子科技大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣西桂林 541004)
為了得到雙曲拋物面上的等距曲線(xiàn),提出一種雙曲拋物面上樣條曲線(xiàn)的等距曲線(xiàn)算法。在重心坐標(biāo)系下,通過(guò)求雙曲拋物樣條曲線(xiàn)的法向量,得到相應(yīng)的等距曲線(xiàn)。借助仿射變換和向量叉積,計(jì)算樣條曲線(xiàn)的法向量。通過(guò)Matlab軟件實(shí)現(xiàn)對(duì)等距曲線(xiàn)的繪制,并在給定節(jié)點(diǎn)的情況下對(duì)等距線(xiàn)進(jìn)行拼接。結(jié)果表明,用該算法獲取的雙曲拋物面上樣條曲線(xiàn)的等距曲線(xiàn)簡(jiǎn)單、快捷。
雙曲拋物面;等距曲線(xiàn);代數(shù)樣條
等距曲線(xiàn)是基曲線(xiàn)上的每個(gè)點(diǎn)沿法方向移動(dòng)距離為d的點(diǎn)的軌跡,為近十年來(lái)CAGD的一大熱點(diǎn)。等距曲線(xiàn)在工業(yè)中應(yīng)用十分廣泛,其應(yīng)用領(lǐng)域遍及公路、鐵路線(xiàn)型設(shè)計(jì),機(jī)器人行走路徑規(guī)劃,等間距挖洞加工,實(shí)體造型和圖形學(xué)等[1]。
等距曲線(xiàn)逼近算法主要有5種[2]:1)等距移動(dòng)控制網(wǎng)格得到等距曲線(xiàn)逼近曲線(xiàn)控制網(wǎng)格的方法;2)基圓包絡(luò)法;3)基于插值擬合法;4)不會(huì)產(chǎn)生自交的逼近法;5)利用測(cè)地線(xiàn)得到等距曲線(xiàn)的方法。PH(Pythagorean hodograph)曲線(xiàn)為一類(lèi)參數(shù)曲線(xiàn),其表示平面多項(xiàng)式曲線(xiàn)的等距曲線(xiàn)表達(dá)式中分母根號(hào)內(nèi)為完全平方,使得等距曲線(xiàn)可精確有理表示。PH條件是具有有理等距曲線(xiàn)的平面多項(xiàng)式曲線(xiàn)所應(yīng)滿(mǎn)足的一個(gè)充分條件。弗爾謝克和拉維斯卡[3-4]分析了代數(shù)曲線(xiàn)等距線(xiàn)的還原性,提出了一種類(lèi)似PH條件的參數(shù)化曲線(xiàn)。文獻(xiàn)[5]根據(jù)有理單位切向量提出了一種構(gòu)建空間有理PH曲線(xiàn)的方法。張若楠等[6]利用改進(jìn)的有理德卡斯特里奧算法求得一類(lèi)正則有理貝齊爾曲線(xiàn)各點(diǎn)的切向量,得到各點(diǎn)單位法向量。文獻(xiàn)[7-8]在重心坐標(biāo)系下用雙參數(shù)化方法生成雙曲拋物面上樣條曲線(xiàn)。為此,提出一種雙曲拋物面上樣條曲線(xiàn)的等距曲線(xiàn)算法,通過(guò)仿射變換和叉積運(yùn)算得到樣條曲線(xiàn)的單位法向量,進(jìn)而得到樣條的等距曲線(xiàn),在給定節(jié)點(diǎn)的情況下,可以對(duì)等距曲線(xiàn)進(jìn)行拼接,且拼接是G1連續(xù)的。
文獻(xiàn)[8]中,在笛卡爾坐標(biāo)系中頂點(diǎn)為(0,0,0)、(1,0,0)、(0,1,0)和(0,0,1)的正四面體T*上定義一雙曲拋物面,
式(1)通過(guò)u、v二個(gè)參數(shù)進(jìn)行參數(shù)化[8-9],參數(shù)u、v關(guān)系由一個(gè)函數(shù)簇決定:
曲線(xiàn)可表示為:
曲面(1)的法向量為:
則曲線(xiàn)C(u)的法向量為:
設(shè)P1,P2,P3,P4∈R3是非共面點(diǎn),以P1、P2、P3、P4為頂點(diǎn)的非退化四面體(或三維單形)T=[P1P2P3P4],Pi=(xi,yi,zi)T。根據(jù)重心坐標(biāo)系變換, T與T*的關(guān)系為:
J是α關(guān)于x、y、z的Jacobian矩陣:
正則樣條曲線(xiàn)C(u)通過(guò)線(xiàn)性運(yùn)算(4)構(gòu)造非共面控制四邊形上的樣條曲線(xiàn)S(u)。S(u)的法向量為:
P1點(diǎn)的法向量nT(P1)是由P1、P2、P4組成平面的法向量,P4點(diǎn)的法向量nT(P4)是由P1、P3、P4組成平面的法向量,因此,曲面的法向量也是樣條曲線(xiàn)的法向量。圖1為控制四邊形上樣條曲線(xiàn)的單位法向量。
圖1 樣條曲線(xiàn)的單位法向量Fig.1 The normal vector of spline curve
定義給定一空間參數(shù)曲線(xiàn)S(u)=(x(u),y (u),z(u)),其距離為d的等距曲線(xiàn)Sd(u)定義為:其中n(u)為曲線(xiàn)S(u)的單位法向量。
正四面體T*由式(2)生成樣條曲線(xiàn)C(u),且有法向量n(u),根據(jù)等距距離d,可得該樣條曲線(xiàn)的等距曲線(xiàn)如圖2所示。
圖2 正四面體上的樣條曲線(xiàn)和等距曲線(xiàn)Fig.2 Spline curve and its offset in a regular tetrahedron
樣條曲線(xiàn)C(u)經(jīng)仿射變換式(4)可映射到任意四面體,但樣條曲線(xiàn)C(u)的法向量經(jīng)式(4)的變換后得到的向量nT(u)不一定是樣條曲線(xiàn)S(u)的法向量。因此,給出一個(gè)準(zhǔn)確的樣條曲線(xiàn)S(u)的法向量的計(jì)算方法。
設(shè)樣條曲線(xiàn)Si(u)上Pi點(diǎn)的切向量為m(Pi), nT(Pi)是通過(guò)式(5)的變換得到的向量,則Si(u)的法向量可表示為:
對(duì)任意給定控制四邊形的樣條曲線(xiàn),都可通過(guò)式(6)獲得其法向量及相應(yīng)的等距曲線(xiàn)(見(jiàn)圖3),四邊形退化為平行四邊形同樣可以實(shí)現(xiàn)。
圖3 四面體上的樣條曲線(xiàn)和等距曲線(xiàn)Fig.3 Spline curve and its offset in a tetrahedron
雙曲拋物面上的樣條曲線(xiàn)可進(jìn)行拼接[8-9],等距曲線(xiàn)是樣條曲線(xiàn)由法向量移動(dòng)一段距離得到,同樣也可在一定條件下進(jìn)行拼接。
定理2個(gè)頂點(diǎn)分別為P1、P2、P3、P4和P1*、P2*、P3*、P4*的四面體H和H*,對(duì)雙曲拋物面進(jìn)行雙參數(shù)化[8],分別生成樣條曲線(xiàn)S1(u)和S2(u),設(shè)它們的等距曲線(xiàn)為Cos(1)和Co(2s)。
1)在P2、P3、P4、P4*、P2*五點(diǎn)共面的條件下,等距曲線(xiàn)Co(1s)和Co(2s)尾尾相連(在P4和P4*點(diǎn)拼接)后是G1連續(xù)的。
2)在P2、P4、P1*、P3*、P4*五點(diǎn)共面的條件下,等距曲線(xiàn)Co(1s)和Co(2s)首尾相連(在P4和P1*點(diǎn)拼接)后是G1連續(xù)的。
證明根據(jù)文獻(xiàn)[8],正四面體中P1的坐標(biāo)為(α1,α2,α3)=(1,0,0),代入
得n(P1)=(0,0,1)。正四面體中P1點(diǎn)的法向量經(jīng)過(guò)式(5)變換得到的向量為:
由此可知,正四面體端點(diǎn)P1的法向量變換后的向量nT(P1)方向平行于P3P4。同理可得端點(diǎn)P4的法向量變換后的向量nT(P4)平行于P2P4。
1)等距曲線(xiàn)在P4和P4*點(diǎn)拼接。若P2、P3、P4、P4*、P2*五點(diǎn)共面,則經(jīng)過(guò)式(5)變換得到的向量nT(P4)與nT(P4*)共面,
由此可得n*T(P4)//n*T(P*4),即在點(diǎn)P4和P*4有一致的法方向,等距曲線(xiàn)可拼接且是G1連續(xù)的。2)等距曲線(xiàn)在P4和P*1點(diǎn)拼接。若P2、P4、P*1、P*3、P*4五點(diǎn)共面,則經(jīng)過(guò)式(5)變換得到的向量nT(P4)與nT(P*1)共面,
由此可得n*T(P4)//n*T(P1),即在點(diǎn)P4和P*1有一致的法方向,等距曲線(xiàn)可拼接且是G1連續(xù)的。定理得證。
圖4、5是等距曲線(xiàn)尾尾相連和首尾相連拼接的例子。
圖4 等距曲線(xiàn)尾尾相連拼接Fig.4 Offset curve attached in tail and tail
圖5 等距曲線(xiàn)首尾相連拼接Fig.5 Offset curve attached in fore and aft
給定空間節(jié)點(diǎn)的等距曲線(xiàn)的算法如下:
1)輸入控制頂點(diǎn){Pi}(i=1,2,…,n),等距距離d,初始條件i=1,f=0。
2)若n<4,退出算法。假設(shè)P1(i)=Pi,P2(i)=Pi+t(Pi+1―Pi―1),P2(1)可作為一個(gè)預(yù)留點(diǎn),P3(i)= Pi+1+t(Pi+2―Pi),P3(n―1)可作為一個(gè)預(yù)留點(diǎn),P4(i) =Pi+1。若四點(diǎn)共面,則生成平面樣條曲線(xiàn);若四點(diǎn)不共面,則生成空間樣條曲線(xiàn)。
3)在給定的空間四面體內(nèi)構(gòu)造樣條曲線(xiàn)S(i)(u),方法參考文獻(xiàn)[8]。
4)S(i)(u)的單位法向量可用式(6)求得。若P 2(i―1)和P3(i)在由點(diǎn)P1(i)、P 2(i)和P4(i)所在平面π的同一邊,令f=f+1。
5)得到等距線(xiàn)Cos(i)=S(i)(u)+(―1)fnTi(u)。
6)若i=n―1,算法結(jié)束,否則i=i+1,轉(zhuǎn)步驟2)。為了實(shí)現(xiàn)拼接,取適當(dāng)?shù)膖,使得P(i)、P(i)、24 P 1(i+1)、P3(i+1)、P4(i+1)或者P2(i)、P 3 (i)、P 4 (i)、P 1 (i+1)、P 3(i+1)五點(diǎn)共面。
與傳統(tǒng)的等距曲線(xiàn)構(gòu)造相比,利用仿射變換直接求取樣條曲線(xiàn)的法向量十分方便,不需要對(duì)原曲線(xiàn)進(jìn)行逼近計(jì)算。在Matlab中可使用該方法進(jìn)行編程,繪制等距曲線(xiàn)并進(jìn)行拼接。但是本算法未對(duì)此構(gòu)造方法產(chǎn)生的等距曲線(xiàn)的精度進(jìn)行深入的研究,也未說(shuō)明其中存在的誤差,是一個(gè)處于初級(jí)階段的新理論,今后需要在實(shí)驗(yàn)過(guò)程中加入一些附加條件,提高其精度。
[1] Pottmann H.Rational curves and surfaces with rational offsets[J].Computer Aided Geometric Design,1995 (12):175-192.
[2] Mackawa T.An overview of offset curves and surfaces [J].Computer Aided Design,1999,31(3):165-173.
[3] Vrsek J,Lávicka M.Reducibility of offset to algebraic curves[J].Computer Aided Geometric Design,2013,30 (1):140-147.
[4] Vrsek J,Lávicka M.Exploring hypersurfaces with offset-like convolutions[J].Computer Aided Geometric Design,2012,29(9):679-690.
[5] Farouki R T,Sakkalis T.Rational pythagorean-hodograph space curves[J].Computer Aided Geometric Design,2011,28(2):75-88.
[6] 張若楠,黃有度.一類(lèi)有理Bézier曲線(xiàn)的等距線(xiàn)算法及MATLAB實(shí)現(xiàn)[J].大學(xué)數(shù)學(xué),2012(2):59-63.
[7] Peng Fengfu,Han Xuli.Parametric spline on a hyperbolic paraboloid[J].Journal of Computional and Applied Mathematics,2009,229(1):183-191.
[8] Peng Fengfu,Chen Juanjuan.Spline on a generalized hyperbolic paraboloid[J].Journal of Computional and Applied Mathematics,2011,235(8):2451-2458.
編輯:翁史振
An offset algorithm of spline on hyperbolic paraboloid
Tian Liang,Peng Fengfu
(School of Mathematics and Computational Science,Guilin University of Electronic Technology,Guilin 541004,China)
In order to obtain the spatial offset curve for a spline in the hyperbolic paraboloid,an offset algorithm of spline on hyperbolic parabolid is presented.The principal normal vector of the hyperbolic paraboloid spline is solved to get its offset curve with its barycentric coordinate systerm.With the help of affine transformation and vector cross product,the normal vector of spline curve is calculated.Through Matlab software,the equidistant curve drawing is implemented,and the equidistant line is spliced in the case of a given node.The results show that the method is fast and convenient in drawing offset curve of spline on hyperbolic paraboloid.
hyperbolic paraboloid;offset curve;algebraic spline
TP391.7
:A
:1673-808X(2015)04-0336-04
2015-03-13
國(guó)家自然科學(xué)基金(11361018)
彭豐富(1972―),男,湖南婁底人,副教授,博士,研究方向?yàn)橛?jì)算機(jī)輔助幾何設(shè)計(jì)和數(shù)值計(jì)算。E-malil:28761025@qq.com
田良,彭豐富.一種雙曲拋物面上樣條曲線(xiàn)的等距曲線(xiàn)算法[J].桂林電子科技大學(xué)學(xué)報(bào),2015,35(4):336-339.