徐夢豪,嚴(yán)蘭蘭
(東華理工大學(xué)理學(xué)院,330013,南昌)
Bernstein多項式具有很多獨特的性質(zhì),正因為如此,以Bernstein多項式作為基函數(shù)的Bézier方法擁有許多良好的特性。這使得Bézier方法自產(chǎn)生開始,便受到了來自工業(yè)界和計算機輔助幾何設(shè)計(CAGD)學(xué)術(shù)界的廣泛青睞[1]。雖然優(yōu)點眾多,但任何造型方法都不可能十全十美。Bézier方法的不足主要體現(xiàn)在2個方面:首先,Bézier曲線曲面的形狀由其控制頂點唯一確定,當(dāng)需要對形狀進行修改的時候,唯一的辦法是調(diào)整控制頂點,重新計算曲線曲面上的點。這種方式不僅操作起來不方便,而且如果控制頂點是來自實物的精確測量點,那么修改控制頂點本身就是勉為其難。另外,雖然Bézier方法可以表示靈活多變的自由曲線曲面,但卻無法精確表示部分常見的初等解析曲面,只能采用近似表達,帶來的后果是會引起設(shè)計誤差,使原本簡單的問題變得異常復(fù)雜。
對于Bézier方法的上述2個不足,有理Bézier方法在一定程度上能夠克服,但有理方法自身又有其不足。例如:微分、積分等運算比較復(fù)雜,不恰當(dāng)?shù)臋?quán)因子可能會破壞參數(shù)化。為了揚長避短,在保留Bézier方法優(yōu)點的同時,避開上述這些不足,構(gòu)造新的造型方法成為CAGD中的熱點研究主題之一。
Bézier方法包括Bézier曲線、四邊域張量積Bézier曲面、三角域Bernstein-Bézier曲面,這三者都面臨著上述對于固定控制頂點形狀無法調(diào)整的不便,以及無法給出除拋物線(面)以外的二次曲線(面)的精確表達的不足。
相對于曲面而言,曲線的結(jié)構(gòu)比較簡單,因此討論更方便。已有眾多文獻專門圍繞Bézier曲線的不足加以改進。改進的途徑主要有2種:1)通過構(gòu)造含參數(shù)的基函數(shù),來實現(xiàn)不改變控制頂點也能修改曲線形狀的目標(biāo)[2-3];2)通過在非多項式空間中構(gòu)造合適的基函數(shù),來實現(xiàn)無需有理形式也能精確表示二次曲線的目標(biāo)[4-5]。四邊域上的Bézier曲面是采用張量積方法構(gòu)造的,因此其采用的是與Bézier曲線完全一致的單變量Bernstein多項式作為基函數(shù)。這樣一來,只要實現(xiàn)了對Bézier曲線的改進,也就同時實現(xiàn)了對四邊域張量積Bézier曲面的改進。但由于三角域Bézier曲面并非張量積形式,其采用的是雙變量Bernstein多項式作為基函數(shù),所以要實現(xiàn)對三角域Bézier曲面的改進,需要獨立地構(gòu)造基函數(shù)。現(xiàn)有文獻中,對Bézier曲線做改進研究的較多,對三角域Bézier曲面做改進研究的相對較少。
梳理國內(nèi)外圍繞三角域Bézier曲面的不足進行改進研究的文獻, 根據(jù)其采用的基函數(shù)所在的空間將它們分為兩大類。
第1類:依然在代數(shù)多項式空間中構(gòu)造基函數(shù),但基函數(shù)中融入了參數(shù)。例如文獻[6-7]構(gòu)造了3次雙變量多項式基函數(shù),定義了分別含3個、6個形狀參數(shù),且取特殊參數(shù)時都可以退化為2次三角域Bézier曲面的新曲面;文獻[8-9]分別構(gòu)造了3次、4次雙變量多項式基函數(shù),定義了分別含3個、1個形狀參數(shù),且取特殊參數(shù)時都可以退化為3次三角域Bézier曲面的新曲面;文獻[10-11]都構(gòu)造了n次雙變量多項式基函數(shù),定義了分別含1個、多個形狀參數(shù),且取特殊參數(shù)時都可以退化為n次三角域Bézier曲面的新曲面;文獻[12]構(gòu)造了n+1次雙變量多項式基函數(shù),定義了含多個形狀參數(shù),且取特殊參數(shù)時可以退化為n次三角域Bézier曲面的新曲面;采用遞推的方式,在初始3次雙變量多項式基函數(shù)的基礎(chǔ)上,文獻[13]構(gòu)造了n+1次基函數(shù),在初始4次雙變量多項式基函數(shù)的基礎(chǔ)上,文獻[14-15]都構(gòu)造了n+2次基函數(shù),文獻[13-15]中的曲面都含1個形狀參數(shù),且取特殊參數(shù)時都可以退化為n次三角域Bézier曲面。
第2類:在非代數(shù)多項式空間中構(gòu)造基函數(shù)。例如在三角多項式空間中,文獻[16]和[17]分別對2次、3次三角域Bézier曲面做出了改進,文獻[18-19]在對3次三角域Bézier曲面做出改進的同時還引入了3個形狀參數(shù),文獻[16-19]中曲面的邊界曲線可以是圓弧、橢圓?。辉谥笖?shù)函數(shù)和多項式函數(shù)的混合空間中,文獻[20]構(gòu)造了含3個形狀參數(shù),且取特殊參數(shù)時可以退化為3次三角域Bézier曲面的新曲面;同樣是在三角多項式空間,文獻[21]構(gòu)造了一種結(jié)構(gòu)較為特殊的三角域Bézier曲面,其每張曲面片由19個控制頂點定義,該曲面可以精確表示球面。
得益于所融入的形狀參數(shù),由文獻[6-15]定義的曲面不僅繼承了傳統(tǒng)Bernstein-Bézier曲面的基本性質(zhì),而且都可以實現(xiàn)不改變控制頂點,僅通過調(diào)整形狀參數(shù)來修改形狀的目標(biāo),因此這些新曲面使用起來更加靈活、方便。由于文獻[16-17,21]構(gòu)造的曲面都未引入形狀參數(shù),因此它們都并不具備形狀可調(diào)性。雖然文獻[16-19,21]構(gòu)造的曲面定義于三角多項式空間,具備表示部分2次曲面的潛能,但只有文獻[17]討論了球面的表示。
考慮到代數(shù)多項式函數(shù)在所有函數(shù)類型中計算最簡單,且基于代數(shù)多項式函數(shù)的曲線曲面易于向CAGD中的傳統(tǒng)造型曲線曲面轉(zhuǎn)化,因此在構(gòu)造新曲線曲面時,若能保持調(diào)配函數(shù)類型為代數(shù)多項式,且新方法在保留傳統(tǒng)曲線曲面基本性質(zhì)的同時,還能獲取一些新的性質(zhì),則不失為好的方法。
在工程實際中,低次曲線曲面的使用頻率較高,因此本文選擇3次三角域Bézier曲面作為改進對象。通過在控制頂點中融入?yún)?shù),定義了含3個形狀參數(shù)的新曲面,取特殊參數(shù)時可以退化為3次三角域Bézier曲面。對曲面的G1光滑拼接條件以及幾何迭代算法進行了討論,并對迭代算法的斂散性進行了分析。
給定三角域D={(u,v,w)|u,v,w≥0,u+v+w=1},以及呈三角陣列的控制頂點Vijk(i+j+k=3)∈3,可定義一張三角域上的3次Bézier曲面
曲面r(u,v,w)具備凸包性、角點插值性以及輪換對稱性;由邊界控制頂點確定的Bézier曲線構(gòu)成了曲面的邊界曲線;由角點和與之相鄰的2個控制頂點張成的平面為曲面在角點處的切平面。
注意到在控制頂點Vijk(i+j+k=3)給定的情況下,曲面r(u,v,w)的形狀唯一確定。下面分析如何在頂點Vijk中融入形狀參數(shù),從而定義具有形狀可調(diào)性的三角域曲面r*(u,v,w),同時保持r*(u,v,w)與r(u,v,w)的角點一致,并且角點切平面相同。
為此,定義曲面r*(u,v,w)如下:
r*(u,v,w)=B300V300+B030V030+B003V003+
B111V111+B210[αV210+(1-α)V300]+B120[αV120+(1-α)V030]+B021[βV021+(1-β)V030]+B012[βV012+(1-β)V003]+B102[γV102+(1-γ)V003]+B201[γV201+(1-γ)V300]
(1)
其中u,v,w∈D,參數(shù)α,β,γ∈(0,1]。
將r*(u,v,w)記作
(2)
也就是將r*(u,v,w)當(dāng)作常規(guī)的3次三角域Bézier曲面來看待,其控制頂點如下:
(3)
(4)
(5)
其中參數(shù)α,β,γ∈(0,1]。
(6)
(7)
其中轉(zhuǎn)換矩陣為
1)退化性。取α=β=γ=1,含參數(shù)的調(diào)配函數(shù)退化成雙變量3次Bernstein基函數(shù)。
4)輪換對稱性。當(dāng)α=β=γ時,有
6)角點導(dǎo)數(shù)。對i+j+k=3,有
7)線性無關(guān)性。若參數(shù)α,β,γ∈(0,1],則含參數(shù)的調(diào)配函數(shù)之間是線性無關(guān)的。
證明:假設(shè)
(8)
其中xijk∈。將式(5)代入式(8)并整理,得到
x300B300+x030B030+x003B003+x111B111+[αx210+(1-α)x300]B210+[αx120+(1-α)x030]B120+
[βx021+(1-β)x030]B021+[βx012+(1-β)x003]B012+[γx102+(1-γ)x003]B102+[γx201+(1-γ)x300]B201=0。
由于普通的雙變量3次Bernstein基函數(shù)之間是線性無關(guān)的,因此有
注意到α,β,γ≠0,故方程組的解為xijk=0,i+j+k=3,這表明bijk(i+j+k=3)線性無關(guān)。
根據(jù)調(diào)配函數(shù)的性質(zhì),并結(jié)合曲面r*(u,v,w)的表達式,不難推出形狀可調(diào)三角域曲面的下列性質(zhì)。
1)凸包性。曲面r*(u,v,w)完全落在其控制網(wǎng)格形成的凸包內(nèi)部。
2)幾何不變性與仿射不變性。曲面r*(u,v,w)的形狀直接取決于其控制頂點以及參數(shù)α、β和γ的取值,與坐標(biāo)系的選擇無關(guān);對曲面進行仿射變換,其結(jié)果與對控制網(wǎng)格進行同樣的變換后所確定的曲面完全一致。
3)角點插值性。控制網(wǎng)格的3個角點都落在曲面r*(u,v,w)上,具體地,有r*(1,0,0)=V300,r*(0,1,0)=V030,r*(0,0,1)=V003。
4)角點切平面。在角點(1,0,0)處,曲面的切平面由點V300、V210和V201張成;在角點(0,1,0)處的切平面由點V030、V120和V021張成;在角點(0,0,1)處的切平面由點V003、V012和V102張成。
5)邊界曲線。曲面上w=0的邊界曲線由邊界控制頂點Vij0(i+j=3)與式(6)所示函數(shù)組定義的曲線;曲面上u=0的邊界曲線由控制頂點V0jk(j+k=3)與式(6)所示函數(shù)組(將參數(shù)α改為β)定義的曲線;曲面上v=0的邊界曲線由控制頂點Vi0k(i+k=3)與式(6)所示函數(shù)組(將參數(shù)α改為γ)定義的曲線。由于函數(shù)組bi(i=0,1,2,3)具有全正性,因此邊界曲線具備保形性。
6)形狀可調(diào)性。在控制頂點Vijk(i+j+k=3)給定的情況下,可通過改變參數(shù)α、β和γ的值來調(diào)整曲面形狀。
首先,由曲面邊界曲線性質(zhì)可知,當(dāng)α保持不變時,對應(yīng)w=0的邊界曲線固定不變(比較圖1(a)~圖1(d));當(dāng)β不變時,對應(yīng)u=0的邊界曲線不變(比較圖1(b)、圖1(c)、圖1(e)和圖1(f)或圖1(d)和圖1(g));當(dāng)γ不變時,對應(yīng)v=0的邊界曲線不變(比較圖1(b)、圖1(e)和圖1(f)或圖1(d)和圖1(g))。
另外,由表達式(4)可知,曲面r*(u,v,w)為控制頂點Vijk(i+j+k=3)的加權(quán)線性組合,點Vijk處的權(quán)重為bijk。而由式(5)可知,函數(shù)b300關(guān)于α和γ單調(diào)遞減,b210和b120關(guān)于α單調(diào)遞增;函數(shù)b030關(guān)于α和β單調(diào)遞減,b021和b012關(guān)于β單調(diào)遞增;函數(shù)b003關(guān)于β和γ單調(diào)遞減,b102和b201關(guān)于γ單調(diào)遞增。因此當(dāng)α增加時,點V210和V120的權(quán)重增加,點V300和V030的權(quán)重減小,曲面對應(yīng)w=0的邊界曲線隨α的增加而逼近以V210和V120為端點的線段,隨著這條邊界曲線的變化,整張曲面也會發(fā)生相應(yīng)的改變(對比圖1(b)、圖1(e)和圖1(f))。增加β(比較圖1(c)和圖1(d))或增加γ時的效果類似。當(dāng)α、β和γ中有2個同時增加時,就有對應(yīng)的2條邊界曲線發(fā)生明顯改變,例如當(dāng)α固定,β和γ同時增加時的效果可以比較圖1(a)、圖1(b)和圖1(d)。當(dāng)α、β和γ三者同時增加時,3條邊界曲線均發(fā)生明顯改變,整張曲面對控制網(wǎng)格的逼近程度會不斷增加,可以通過比較圖1(a)、圖1(e)和圖1(g)來觀察效果。
在固定控制頂點的前提下,圖1展示了通過調(diào)整參數(shù)生成的形狀各不相同的三角域曲面。
(a)參數(shù) 參數(shù)
與現(xiàn)有的形狀可調(diào)三角域曲面相比,這里定義的形狀可調(diào)三角域曲面具有如下優(yōu)點:1)在賦予曲面形狀調(diào)整靈活度的同時,并沒有增加調(diào)配函數(shù)的多項式次數(shù);2)邊界曲線具有對邊界控制頂點的保形性;3)曲面中含有的形狀調(diào)整參數(shù)數(shù)量達到了同等條件下的最大值,因此具有最佳的形狀調(diào)整靈活度。
雖然含參數(shù)的調(diào)配函數(shù)依然為代數(shù)多項式,計算相對簡單,但由于引入了參數(shù),所以其表達比Bernstein基函數(shù)要復(fù)雜一些。這樣一來,直接分析形狀可調(diào)三角域曲面的拼接問題,雖然在理論上是可行的,但是實際操作起來具有一定的困難。為了降低分析的難度,依據(jù)3次三角域Bézier曲面的拼接理論,以及形狀可調(diào)三角域曲面與3次三角域Bézier曲面之間的關(guān)系,來分析形狀可調(diào)三角域曲面為實現(xiàn)光滑拼接應(yīng)滿足的條件。
給出如下2張3次三角域Bézier曲面:
其中u,v,w∈D。當(dāng)
(9)
時,r1(0,v,w)=r2(0,v,w),兩曲面具有公共的對應(yīng)u=0的邊界曲線。為使曲面沿公共邊界G1連續(xù),須滿足[19-21]
(10)
其中ξ和η為任意因子。條件(10)可轉(zhuǎn)化為
(11)
根據(jù)式(9)、式(11),可以推出3次三角域Bézier曲面的G1光滑拼接條件為
(12)
給出如下2張形狀可調(diào)三角域Bézier曲面:
(13)
其中u,v,w∈D,bijk(u,v,w;α1,β1,γ1)表示參數(shù)取α1、β1和γ1的調(diào)配函數(shù),bijk(u,v,w;α2,β2,γ2)則取參數(shù)α2、β2和γ2。
(14)
由式(9)可知,當(dāng)
(15)
(16)
進一步地,由式(11)可知,若
(17)
(18)
將式(16)代入式(18)并整理可得
(19)
其中O1=β1P012+(1-β1)P003,O2=β1P021+(1-β1)P030。
(a)參數(shù)(視角1)
幾何迭代法[22]具有明確的幾何意義。這種方法始于一條曲線或者一張曲面,通過不斷地迭代調(diào)整曲線或曲面的控制頂點,讓最終生成的曲線或曲面要么插值、要么逼近最初所給的控制點列。
構(gòu)造第1次迭代所生成的曲面
假設(shè)第n次迭代后得到的曲面為
為進行第n+1次迭代,首先計算差向量
(20)
構(gòu)造第n+1次的迭代曲面
按照3.1節(jié)中給出的迭代過程,不斷地進行下去,將會生成一個曲面序列
為了分析迭代過程的收斂性,依據(jù)字典排序方法[23],將含參數(shù)的調(diào)配函數(shù)按以下順序排列
b={b300,b210,b201,b120,b111,b102,b030,b021,b012,b003}
(21)
同步地,與控制頂點對應(yīng)的參數(shù)也依據(jù)字典排序方法進行排列,并記
t={t300,t210,t201,t120,t111,t102,t030,t021,t012,t003}
(22)
由式(20)可得
(23)
記
則式(23)可用矩陣表示成Δ(n+1)=(I-C)Δ(n),其中I為10階單位矩陣,C為調(diào)配函數(shù)(21)關(guān)于參數(shù)序列(22)的配置矩陣,即
圖3所示為:在球面上挑選10個點作為控制頂點,選擇相異的2組參數(shù),執(zhí)行不同的迭代次數(shù),得到的曲面結(jié)果。
將圖3中第1列和第2列的4張曲面分別進行比較,不難看出,當(dāng)?shù)螖?shù)逐漸增加時,曲面逐漸變化到插值于給定點列的曲面。分別比較圖3中每一排的2張曲面,不難觀察出,參數(shù)取值越大,曲面與極限結(jié)果的插值曲面愈加接近。
(a)迭代0次:(左); α=β=γ=1(右) (b)迭代3次:(左); α=β=γ=1(右)
表1 迭代誤差
以3次三角域Bézier曲面作為研究對象,本文欲從形狀表示的靈活性這個角度對其進行擴展,在既沒有改變基函數(shù)的類型(與文獻[18-20]相比),又沒有增加基函數(shù)的次數(shù)(與[6,7,9,12-15]相比)的前提下,賦予了曲面形狀可調(diào)性,這些特點與文獻[8,10-11]相同。本文給出的曲面含3個形狀參數(shù),比只含1個形狀參數(shù)的文獻[10]能構(gòu)造出更加豐富的形狀。文獻[8]中的曲面和文獻[11]中n=3時的曲面一致,雖然也含3個形狀參數(shù),但本文中的3個參數(shù)分別控制曲面的3條邊界,參數(shù)的變化引起邊界的變化進而帶動曲面形狀的改變,文獻[8,11]中的3個參數(shù)則沒有這種直觀的調(diào)控作用。為了構(gòu)造形狀可調(diào)的三角域曲面,現(xiàn)有文獻采用的方法基本相同,即先構(gòu)造帶有參數(shù)的調(diào)配函數(shù),然后與控制頂點做線性組合,參數(shù)值改變時,參與計算的調(diào)配函數(shù)隨之改變,從而引起曲面形狀的變化。本文采用全新的思路,在控制頂點而非調(diào)配函數(shù)中融入?yún)?shù),然后與常規(guī)的雙變量Bernstein基函數(shù)做線性組合,以構(gòu)造曲面。隨著參數(shù)取值的改變,參與計算的曲面控制頂點隨之變化,進而帶動曲面形狀的變化。這種方法從純幾何而非代數(shù)的角度出發(fā),給出了可調(diào)曲面之所以形狀可調(diào)的直觀解釋,即控制頂點的改變引起曲面形狀的改變。
在討論形狀可調(diào)三角域曲面的光滑拼接條件時,為了降低分析的難度,先對常規(guī)3次三角域Bézier曲面的拼接條件進行討論,再根據(jù)新曲面與3次三角域Bézier曲面之間的關(guān)系,得到形狀可調(diào)三角域曲面的G1光滑拼接條件,條件的幾何意義明確,這有利于手工確定與已有曲面光滑拼接的曲面控制頂點。
為了構(gòu)造視覺上插值于控制頂點的曲面,對文中構(gòu)造的形狀可調(diào)三角域曲面的幾何迭代算法做出了討論,對迭代算法的收斂性、收斂速度以及擬合誤差進行了分析,這些理論分析結(jié)果為曲面的應(yīng)用打下了基礎(chǔ)。