陳素根,劉兵兵
自由變形技術(shù)是幾何造型、計算機圖形學(xué)、計算機動畫及科學(xué)數(shù)據(jù)可視化等領(lǐng)域獲取形狀復(fù)雜、形態(tài)多樣的幾何形體的重要手段之一,得到廣泛關(guān)注與研究,在實踐中廣泛應(yīng)用。然而,尋求新的、有效且直觀的變形方法依然是計算機圖形學(xué)等領(lǐng)域的研究熱點之一。幾何形體變形的本質(zhì)是所在空間自身到自身的一個映射,通過映射改變形體的幾何形狀。1984年,Barr首先提出了整體與局部的變形方法[1],之后,Sederberg等提出了自由變形(FFD)方法[2],馮結(jié)青等提出了參數(shù)曲面控制的變形方法[3],但上述方法在預(yù)定或調(diào)節(jié)變形范圍、控制變形方向、確保變形區(qū)域邊界處的連續(xù)性等方面尚不夠理想。近年來,基于伸縮因子的自由變形方法得到了深入研究[4-7],該方法在一定程度上提高了控制精度、操作簡單而且適用于任何形式的曲線曲面,但構(gòu)造的伸縮因子主要基于三角函數(shù)和指數(shù)函數(shù)等超越函數(shù),構(gòu)造基于多項式函數(shù)的伸縮因子方法也引起了關(guān)注[8-11],但這些方法都是定義在圓形區(qū)域或四邊形區(qū)域上的。張莉等[12-13]研究了矩形區(qū)域和凸多邊形區(qū)域上的參數(shù)曲面自由變形算法。然而,任意凸多邊形區(qū)域上基于多項式伸縮因子方法的自由曲面變形研究還不多見,本文構(gòu)造一種新的定義在凸多邊形區(qū)域上的基于多項式的伸縮因子函數(shù)。該伸縮因子具有已有伸縮因子的優(yōu)點,且可以在任意凸多邊形區(qū)域上變形,使曲面變形效果更加豐富,為自由曲面變形提供了一種新方法。
設(shè)Pi(ui,vi)(i=1,2,…,n)是R2平面上不共線的n個點,以P1,P2,…,Pn為頂點的凸多邊形D,且按逆時針方向排列構(gòu)成回路,由幾何知識易知,其內(nèi)部區(qū)域的面積:
對于R2平面上任意點P(u,v),若記三角形PP1P2的面積為 S1,三角形 PP2P3的面積為S2,…,三角形PPn-1Pn的面積為Sn-1,三角形PPnP1的面積為 Sn,則
令 Xi=Si/S,i=1,2,…,n ,則 (X1,X2,…,Xn)稱為P關(guān)于多邊形D的面積坐標(biāo),顯然
定義1 設(shè)P0(u0,v0)是R2平面上凸多邊形D中P1,P2,…,Pn內(nèi)一定點,P0關(guān)于凸多邊形D的面積坐標(biāo)為 (X10,X20,…,Xn0),記 t=X1·X2·…·Xn,t0=X10·X20·…·Xn0,作 R2上的函數(shù):
則稱 f(u,v)為R2平面內(nèi)凸多邊形區(qū)域D上的基本伸縮函數(shù),其中,n∈N+為光滑指數(shù),D為支撐區(qū)域,其邊界為?D。圖1~圖3分別給出了三邊形、四邊形和五邊形區(qū)域上基本伸縮函數(shù)圖形,圖4給出了三邊形區(qū)域上鳥巢消失的伸縮函數(shù)圖形。
圖1 三邊形區(qū)域基本伸縮函
圖2 四邊形區(qū)域基本伸縮函數(shù)
圖3 五邊形區(qū)域基本伸縮函數(shù)
圖4 三邊形區(qū)域鳥巢消失時的基本伸縮函數(shù)
定義 2 令 E(u,v)=E(u,v,u0,v0,n,h)=1+h·f(u,v),則稱E(u,v)為R2平面內(nèi)凸多邊形區(qū)域D上的帶形狀參數(shù)n,h的多項式伸縮因子,n∈N+為光滑指數(shù),h為伸縮參數(shù),D為支撐區(qū)域,其邊界為?D。
易知伸縮因子E(u,v)具有以下性質(zhì):
性質(zhì)1E(u,v)|?D=1;
性質(zhì)2單峰值性:在P0(u0,v0)取得極值;
設(shè) p(u,v)=(x(u,v),y(u,v),z(u,v))為定義在參數(shù)(u,v)平面中區(qū)域 Ω 上的C(r)類曲面 (r≥1),Eij(u,v)=E(u,v,u0,v0,n,hij),(i,j=1,2,3)為具有相同支撐區(qū)域和光滑指數(shù)的伸縮因子,光滑指數(shù)(n≤r+1),D?Ω ,變形中心O'=(x0,y0,z0),令
為支撐區(qū)域D上的伸縮矩陣,則變形后的曲面pd(u,v)與變形前的曲面p(u,v)可表示為
更一般的情形,設(shè)第s(s=1,2,…,k)次變形以O(shè)'s為中心,其伸縮因子為Es,伸縮矩陣為Ts,則變形后的曲面pd(u,v)與變形前的曲面p(u,v)滿足如下遞推關(guān)系:
令T=(dij)3×3,e1,e2,e3為線性無關(guān)的單位向量,記 p(u,v)-O'=p1e1+p2e2+p3e3,則(1)式可表示為
由此可知(1)式所定義的變形幾何意義:在支撐區(qū)域內(nèi),在原曲面上的每一點p(u,v)處,對向量 p(u,v)-O'在仿射坐標(biāo)系[O',e1,e2,e3]下的坐標(biāo)(p1,p2,p3)T作仿射變換,變換矩陣就是伸縮矩陣T。
在變形過程中,通過調(diào)控變形中心、支撐區(qū)域、光滑指數(shù)和伸縮參數(shù),可以靈活地控制變形曲面的形狀:
(1)改變O',可控制曲面的相對變形中心;
(2)改變D,可控制曲面的支撐區(qū)域形狀;
(3)改變P0,可控制曲面的峰值點位置;
(4)改變光滑指數(shù)n,可控制變形曲面在邊界處的光滑性;
(5)改變伸縮參數(shù)hij(i,j=1,2,3),可以控制曲面的伸縮方向和調(diào)整各方向的伸縮幅度,如取h11=h≠0,hij=0(i,j=1,2,3)且 i,j不同時為1,可以控制曲面沿X軸的凹凸變形;改變h11的符號,可以控制曲面沿X軸的正向或負(fù)向變形,改變 ||h11的大小,可以控制曲面沿X軸變形的幅度;改變h12,h13的大小,可以控制曲面沿X軸的剪切效果變形,類似可以得到控制曲面沿Y軸、Z軸的剪切效果變形。
以拋物面 p(u,v)=(u,v,16-u2-v2)為例,分別演示本文方法的實際變形效果及變形控制參數(shù)改變時對曲面形狀的調(diào)控作用。簡單起見,本文實驗選取相同的定義區(qū)域Ω=[-4,4]×[-4,4],相同的變形中心O'=(0,0,-16)。圖5給出了變形的原始拋物面,圖6~圖14給出了變形效果。圖6~圖7為三邊形區(qū)域的變形效果圖,圖6中三邊形區(qū)域頂點為 P1(-2,-2),P2(2,-2),P3(0,2),單峰值點P0(0,0),光滑指數(shù)n=3,伸縮參數(shù)h33=1,其余伸縮參數(shù)hij=0;圖7改變圖6中峰值點位置P0(0,-2/3),其余參數(shù)不變,顯示了峰值點對變形的控制效果。圖8~圖10為四邊形區(qū)域的變形效果圖,四邊形區(qū)域的頂點為 P1(-2,0),P2(0,-2),P3(2,0),P4(0,2),單峰值點 P0(0.5,0.5),光滑指數(shù)n=3。圖8中伸縮參數(shù)h33=1,其余伸縮參數(shù)hij=0;圖9中伸縮參數(shù)h33=1,h13=0.05,其余伸縮參數(shù)hij=0;圖10中伸縮參數(shù)h33=1,h31=10,其余伸縮參數(shù)hij=0,這三張圖顯示了伸縮參數(shù)對變形的控制效果。圖11給出了五邊形區(qū)域的變形效果圖,五邊形區(qū)域頂點為P1(-2,1),P2(-1,-2),P3(1,-2),P4(2,1),P5(0,3),單峰值點 P0(0,0),光滑指數(shù)n=1,伸縮參數(shù)h33=-0.5,其余伸縮參數(shù)hij=0,該圖顯示了伸縮參數(shù)為負(fù)時的沿Z軸下凸變形效果。圖12為互不相交的兩多邊形區(qū)域的復(fù)合變形效果圖,三邊形區(qū)域頂點為 P1(-3,-3),P2(-1,-3),P3(-2,-1),單峰值點P0(-2,-2),光滑指數(shù)n=2,伸縮參數(shù)h33=h13=1,其余伸縮參數(shù)hij=0,四邊形區(qū)域頂點為 P1(1,1),P2(3,1),P3(3,3),P4(1,3),單峰值點P0(2,2),光滑指數(shù)n=2,伸縮參數(shù)h33=1,其余伸縮參數(shù)hij=0。
圖5 原始拋物面
圖6 三邊形區(qū)域變形效果
圖7 峰值點位置對三邊形區(qū)域變形的控制
圖8 四邊形區(qū)域變形效果
圖9 伸縮參數(shù)對四邊形區(qū)域變形的控制(X軸方向)
圖10 伸縮參數(shù)對四邊形區(qū)域變形的控制(Z軸方向)
圖11 五邊形區(qū)域沿Z軸下凸變形效果
圖12互不相交區(qū)域的復(fù)合變形
圖13 ~圖14為三個多邊形區(qū)域的疊加變形效果圖。圖13中變形支區(qū)間分別為三邊形、四邊形和五邊形區(qū)域,單峰值點P0(0,0),光滑指數(shù)n=2,三邊形頂點為 P1(-0.5,-0.5),P2(0.5,-0.5),P3(0,1),伸縮參數(shù)h33=0.2,其余伸縮參數(shù)hij=0;四邊形頂 點 為 P1(-1.5,-1.5),P2(1.5,-1.5),P3(1.5,1.5),P4(-1.5,1.5),伸縮參數(shù) h33=0.5,其余伸縮參數(shù)hij=0;五 邊 形 頂 點 為 P1(-4,0),P2(-3,-4),P3(3,-4),P4(4,0),P3(0,4),伸縮參數(shù) h33=1,其余伸縮參數(shù)hij=0;圖14是對圖13變形效果的進一步控制,分別改變了三邊形和四邊形區(qū)域上的部分伸縮因子。
圖13 不同區(qū)域的疊加變形效果
圖14 伸縮參數(shù)對不同區(qū)域的疊加變形的控制
本文提出的任意凸多邊形區(qū)域上基于多項式的伸縮因子具有已有伸縮因子的特性:能精確控制變形范圍,變形模型簡單、易于操作;控制參數(shù)具有明顯的幾何意義;對于任何參數(shù)曲面均適用,具有普遍性。與現(xiàn)有方法比較,本文方法具有以下優(yōu)點:
(1)可實現(xiàn)任意凸多邊形區(qū)域上的自由變形,變形區(qū)域不再僅為圓域或四邊形區(qū)域;
(2)伸縮因子的構(gòu)造是基于多項式的,避免了三角函數(shù)或指數(shù)函數(shù)等超越函數(shù),計算更簡單;
(3)伸縮參數(shù)可實現(xiàn)沿坐標(biāo)軸的剪切及對疊加變形的進一步控制,變形效果更豐富。
為了使得變形效果更加多樣化、變形方法更加實用化,下一步將研究基于多項式伸縮因子的曲面周期變形以及結(jié)合幾何變換的平移和旋轉(zhuǎn)功能實現(xiàn)曲線曲面自由變形。
參考文獻:
[1]BARR A H.Global and local deformation of solid primitives[J].Computer Graphics,1984,18(3):21-30.
[2]SEDERBERG T W,PARRY R.Free-form deformations of solid geometric models[J].Computer Graphics,1986,20(4):151-160.
[3]FENG J Q,MA L Z,PENG Q S.A New free-form deformation through the control of parametric surfaces[J].omputer&Graphics,1996,20(4):531-539.
[4]WANG X P,YE Z L,HU X M.Shape modification and deformation of parametric surfaces[J].Computer Aided Drafting Design and Manufacture,2002,12(1):1-7.
[5]WANG X P,LIU S L,ZHANG L Y.Construction surface features through deformation[J].International Journal of Image and Graphics,2010,10(1):41-56.
[6]宋來忠,彭剛,楊文穎,等.用于參數(shù)曲線自由變形的新的伸縮因子[J].工程圖學(xué)學(xué)報,2009,30(3):87-93.
[7]宋來忠,彭剛,楊文穎.具有區(qū)間峰值的曲面伸縮因子及其實驗[J].計算機工程與應(yīng)用,2009,45(7):187-190.
[8]宋來忠,彭剛,沈艷軍.參數(shù)曲面多邊形區(qū)域上變形的伸縮因子及其實驗[J].計算機工程與應(yīng)用,2011,47(12):192-195.
[9]陸友太,周來水,王志國,等.基于多項式伸縮因子的參數(shù)曲面自由變形[J].中國機械工程,2012,23(5):609-613.
[10]陸友太,周來水,王志國,等.基于脊曲線控制的參數(shù)曲面周期變形[J].中國機械工程,2012,23(15):1860-1864.
[11]李軍成.基于伸縮因子的代數(shù)曲線曲面變形方法[J].計算機工程與科學(xué),2016,38(6):1225-1230.
[12]張莉,余慧芳,檀結(jié)慶.凸多邊形域上的參數(shù)曲面自由變形[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2015,27(5):892-899.
[13]張莉,葛先玉,檀結(jié)慶.矩形域上的參數(shù)曲面自由變形算法[J].計算機研究與發(fā)展,2016,53(5):1118-1127.