查東東,劉華勇,王曾珍
(安徽建筑大學(xué)數(shù)理學(xué)院,安徽 合肥 230601)
在計(jì)算機(jī)輔助幾何設(shè)計(jì)中,三角域上非張量積型的Bézier曲面因?yàn)樵谛螤钤O(shè)計(jì)上的靈活性,得到了大量的應(yīng)用。同時(shí)學(xué)術(shù)界為克服它在控制多邊形不變時(shí)不能調(diào)整曲面外形的缺點(diǎn),引入了形狀參數(shù)。例如,文獻(xiàn)[1]構(gòu)造了三角域上的局部形狀可調(diào)的三次Bézier曲面;文獻(xiàn)[2]從幾何角度定義了帶形狀參數(shù)的四次Bézier曲面;文獻(xiàn)[3]在不升次的前提下,擴(kuò)展了三角域上的三次Bézier曲面;文獻(xiàn)[4]分析了三角域上生成三角多項(xiàng)式曲面的方法。文獻(xiàn)[1-4]中的曲面除了繼承原有的特性,還能利用形狀參數(shù)來調(diào)節(jié)曲面的形狀,但上述曲面還存在著不能兼顧局部形狀參數(shù)和全局形狀參數(shù)的缺點(diǎn)。文獻(xiàn)[5]討論了帶有3個(gè)形狀參數(shù)的三角曲面;文獻(xiàn)[6]介紹了三角域上二元n次Bernstein基函數(shù)的擴(kuò)展;文獻(xiàn)[7]給出了針對(duì)空間散亂數(shù)據(jù)點(diǎn)的三次曲面插值方法;文獻(xiàn)[8]給出了帶多局部形狀參數(shù)的擬二次Bernstein基函數(shù)。文獻(xiàn)[5-8]中曲面的構(gòu)造,都未實(shí)現(xiàn)拼接的連續(xù)性,且文獻(xiàn)[5]的局部形狀參數(shù)和全局形狀參數(shù)效果是非獨(dú)立的,或?qū)η娴男螤羁刂屏€略有不足。文獻(xiàn)[9]將指數(shù)函數(shù)合并到多項(xiàng)式函數(shù)中;文獻(xiàn)[10]基于遞推關(guān)系構(gòu)造了帶形狀參數(shù)的基函數(shù);文獻(xiàn)[11]擴(kuò)展了帶有多個(gè)形狀參數(shù)的Bézier曲線和曲面。
本文構(gòu)造了帶有形狀參數(shù)的三次三角域Bézier曲面,構(gòu)造出的曲面不但能實(shí)現(xiàn)較高的光滑拼接,還可以用3個(gè)局部形狀參數(shù)和1個(gè)全局形狀參數(shù)修改曲面形狀,其中,3個(gè)局部形狀參數(shù)取值相同時(shí)具有對(duì)稱性的形狀控制效果。形狀參數(shù)大大豐富了曲面的形狀控制效果。
定義1給定面積坐標(biāo)(u,v,w),其中,u,v,w≥0,u+v+w=1,稱:
(1)
為帶形狀參數(shù)λ,α1,α2,α3的三次三角域Bernstein基函數(shù),簡(jiǎn)稱為三次三角域λα-Bernstein基。其中,-2<λ≤1,0≤α1,α2,α3≤1。
性質(zhì)5(角點(diǎn)性質(zhì)) 當(dāng)i+j+k=3時(shí),有:
性質(zhì)6(角點(diǎn)導(dǎo)數(shù))
(2)
證明若
(3)
其中,Xi,j,k∈R。將式(2)代入式(3)整理得:
□
定義2給定面積坐標(biāo)(u,v,w),其中u,v,w≥0,u+v+w=1,呈三角陣列的控制頂點(diǎn)Pi,j,k(i,j,k≥0,i+j+k=3)∈R3,稱:
(4)
為帶形狀參數(shù)α1,α2,α3,λ的三次三角域Bézier曲面,簡(jiǎn)稱為三次三角域λα-Bézier曲面。
借由轉(zhuǎn)換矩陣,也可將r*(u,v,w)寫作三次三角域Bézier曲面形式:
(5)
(6)
性質(zhì)8(凸包性) 三次三角域λα-Bézier曲面完全被包含在控制點(diǎn)Pi,j,k構(gòu)成的凸包內(nèi)。
性質(zhì)9(幾何不變性和仿射不變性) 三次三角域λα-Bézier曲面的形狀僅依賴于控制頂點(diǎn)Pi,j,k∈R3(i,j,k≥0,i+j+k=3),幾何變換不改變曲面的形狀。
其中,N是任意向量且N∈Rd(d=3),M是一任意k×k(k=3)階矩陣。
性質(zhì)10(角點(diǎn)性質(zhì)) 當(dāng)i+j+k=3時(shí),有:
性質(zhì)11(退化性) 當(dāng)α1=α2=α3=λ=1時(shí),三次三角域λα-Bézier曲面退化為三次三角域Bézier曲面。
性質(zhì)12(形狀可調(diào)性) 當(dāng)Pi,j,k(i,j,k≥0,i+j+k=3)固定時(shí),可以改變形狀參數(shù)α1,α2,α3,λ的值來控制曲面的形狀。
圖1為給定同一控制點(diǎn)Pi,j,k下,形狀參數(shù)α1,α2,α3,λ分別取不同值時(shí)得到的三次三角域λα-Bézier曲面??梢钥闯龈鲄?shù)的效果:
(1)λ趨于1 時(shí),曲面整體就越靠近控制網(wǎng)格,如圖1a~圖1c所示。
Figure 1 Influence of different values of λ,α1,α2 and α3 on the surface圖1 λ、α1、α2、α3分別取不同值時(shí)對(duì)曲面的影響
(2)α1、α2、α3控制效果是類似的,這也與基函數(shù)的性質(zhì)3相對(duì)應(yīng)。它們各自控制著相應(yīng)角點(diǎn)處的局部曲面形狀,是對(duì)稱的。其中α1控制著角點(diǎn)P300的局部曲面形狀,α1越趨于0,P300的局部曲面越靠近線段P210P201。α1越趨于1,P300處的局部曲面越靠近P300,如圖1d~圖1f所示。同理可得:α2控制著角點(diǎn)P030的局部曲面形狀,α2越趨于0,P030的局部曲面越靠近線段P120P021。α2越趨于1,P030處的局部曲面越靠近P030,如圖1g~圖1i所示。同理可得:α3越趨于0,P003的局部曲面越靠近線段P012P102。α3越趨于1,P003處的局部曲面越靠近P003,如圖1j~圖1l所示。
借助De Casteljau算法可以遞推n(n≥4)次三角域λα-Bernstein基函數(shù)[1]:
(7)
定義3給定面積坐標(biāo)(u,v,w),其中u,v,w≥0,u+v+w=1,呈三角陣列的控制頂點(diǎn)Pi,j,k(i,j,k≥0,i+j+k=n)∈R3,稱:
(8)
為帶形狀參數(shù)α1,α2,α3,λ的n次三角域Bézier曲面,簡(jiǎn)稱為n次三角域λα-Bézier曲面。
本文將λα-Bézier曲面與文獻(xiàn)[11]中擴(kuò)展的Bézier曲面進(jìn)行了如下比較:
(1)以控制網(wǎng)格為目標(biāo)函數(shù),引入2-范數(shù)來衡量曲面到控制網(wǎng)格的距離,2-范數(shù)越小,距離越短,逼近程度越高。
當(dāng)λα-Bézier曲面比文獻(xiàn)[11]中擴(kuò)展Bézier曲面更貼近控制網(wǎng)格時(shí),有:
(2)比較文獻(xiàn)[11]算法和本文算法的時(shí)間復(fù)雜度,借助Matlab秒表計(jì)時(shí)函數(shù)計(jì)算出各種算法的運(yùn)行時(shí)間,以運(yùn)行時(shí)間近似替代。為減少誤差算法運(yùn)行時(shí)間按如下方式統(tǒng)計(jì):每種算法一組實(shí)驗(yàn)執(zhí)行100次循環(huán),取100次運(yùn)行時(shí)間的平均值,進(jìn)行10組實(shí)驗(yàn),再取10組平均運(yùn)行時(shí)間的最優(yōu)值,比較2種算法的運(yùn)行時(shí)間最優(yōu)值。多次實(shí)驗(yàn)后可以看出,改進(jìn)算法略有領(lǐng)先,但基本上兩者相差不大。
Figure 2 Comparison of curved surfaces from different angles圖2 不同角點(diǎn)視角曲面對(duì)比圖
(3)λα-Bézier曲面和文獻(xiàn)[11]中擴(kuò)展Bézier曲面都能全局和局部地修改形狀,但λα-Bézier曲面具有全局形參和局部形參,文獻(xiàn)[11]中曲面形狀的全局修改還是依靠共同修改多局部形參,且參數(shù)過多。
算法對(duì)比如表1所示。
Table 1 Comparison of different algorithms表1 不同算法的對(duì)比
給定2張三次三角域Bézier曲面
由三角域Bézier曲面的拼接條件[12]知,若滿足:
則2張三次三角域Bézier曲面r1(u,v,w)和r2(u,v,w)在公共邊界(w=0)實(shí)現(xiàn)C1連續(xù)。
定理1給定2張三次三角域λα-Bézier曲面
若滿足:
(1)α1=α2=λ=1;
□
Figure 3 Jointing of cubic triangular λα-Bézier surfaces圖3 三次三角域λα-Bézier曲面的C1拼接
Figure 4 Examples of λα-Bézier surface jointing around corner points圖4 λα-Bézier曲面繞角點(diǎn)的C1拼接實(shí)例
給定2張三次三角域Bézier曲面:
(9)
其中,Qi,j,k為曲面r2(u,v,w)上的點(diǎn)坐標(biāo)。
由三角域Bézier曲面的拼接條件[11]知:
當(dāng)i,j≥0,i+j+k=3時(shí)滿足:
P0,j,k=Q0,j,k
(10)
有r1(0,v,w)=r2(0,v,w),即2張三次三角域Bézier曲面r1(u,v,w)和r2(u,v,w)在公共邊界(u=0)實(shí)現(xiàn)G0連續(xù);
實(shí)現(xiàn)G1連續(xù)需在式(10)基礎(chǔ)上還滿足:
(11)
其中,ε和η為自由因子。
式(10)可轉(zhuǎn)化為:
(12)
則同時(shí)滿足式(10)和式(12)時(shí),r1(u,v,w)和r2(u,v,w)在公共邊界(u=0)實(shí)現(xiàn)G1連續(xù)。
給定2張三次三角域λα-Bézier曲面:
(13)
Figure 5 Jointing of cubic triangular λα-Bézier surfaces圖5 三次三角域λα-Bézier曲面的G1拼接
又可以將式(13)改寫為:
(14)
當(dāng)i,j≥0,i+j+k=3時(shí)滿足:
(15)
(16)
將式(6)和式(16)代入式(14)可得:
(17)
實(shí)現(xiàn)G1連續(xù)需在式(17)基礎(chǔ)上還滿足:
(18)
將式(6)、式(17)代入式(18)可得:
(19)
本文構(gòu)造了帶有形狀參數(shù)的三次三角域Bézier曲面,在繼承三次三角域Bézier曲面原有性質(zhì)外,曲面滿足C1、G1連續(xù)的融合條件也比較簡(jiǎn)單,文中給出了一些參數(shù)不同取值下的曲面形狀可調(diào)的實(shí)例。此外,本文在保持基函數(shù)次序不變的情況下,給出了可調(diào)的局部形狀參數(shù)和全局形狀參數(shù),可以根據(jù)需求更方便地調(diào)節(jié)曲面的形狀。