查東東,劉華勇,王曾珍
(安徽建筑大學數理學院,安徽 合肥 230601)
在計算機輔助幾何設計中,三角域上非張量積型的Bézier曲面因為在形狀設計上的靈活性,得到了大量的應用。同時學術界為克服它在控制多邊形不變時不能調整曲面外形的缺點,引入了形狀參數。例如,文獻[1]構造了三角域上的局部形狀可調的三次Bézier曲面;文獻[2]從幾何角度定義了帶形狀參數的四次Bézier曲面;文獻[3]在不升次的前提下,擴展了三角域上的三次Bézier曲面;文獻[4]分析了三角域上生成三角多項式曲面的方法。文獻[1-4]中的曲面除了繼承原有的特性,還能利用形狀參數來調節曲面的形狀,但上述曲面還存在著不能兼顧局部形狀參數和全局形狀參數的缺點。文獻[5]討論了帶有3個形狀參數的三角曲面;文獻[6]介紹了三角域上二元n次Bernstein基函數的擴展;文獻[7]給出了針對空間散亂數據點的三次曲面插值方法;文獻[8]給出了帶多局部形狀參數的擬二次Bernstein基函數。文獻[5-8]中曲面的構造,都未實現拼接的連續性,且文獻[5]的局部形狀參數和全局形狀參數效果是非獨立的,或對曲面的形狀控制力還略有不足。文獻[9]將指數函數合并到多項式函數中;文獻[10]基于遞推關系構造了帶形狀參數的基函數;文獻[11]擴展了帶有多個形狀參數的Bézier曲線和曲面。
本文構造了帶有形狀參數的三次三角域Bézier曲面,構造出的曲面不但能實現較高的光滑拼接,還可以用3個局部形狀參數和1個全局形狀參數修改曲面形狀,其中,3個局部形狀參數取值相同時具有對稱性的形狀控制效果。形狀參數大大豐富了曲面的形狀控制效果。
定義1給定面積坐標(u,v,w),其中,u,v,w≥0,u+v+w=1,稱:
(1)
為帶形狀參數λ,α1,α2,α3的三次三角域Bernstein基函數,簡稱為三次三角域λα-Bernstein基。其中,-2<λ≤1,0≤α1,α2,α3≤1。





性質5(角點性質) 當i+j+k=3時,有:
性質6(角點導數)

(2)





證明若
(3)
其中,Xi,j,k∈R。將式(2)代入式(3)整理得:


□
定義2給定面積坐標(u,v,w),其中u,v,w≥0,u+v+w=1,呈三角陣列的控制頂點Pi,j,k(i,j,k≥0,i+j+k=3)∈R3,稱:
(4)
為帶形狀參數α1,α2,α3,λ的三次三角域Bézier曲面,簡稱為三次三角域λα-Bézier曲面。
借由轉換矩陣,也可將r*(u,v,w)寫作三次三角域Bézier曲面形式:
(5)

(6)
性質8(凸包性) 三次三角域λα-Bézier曲面完全被包含在控制點Pi,j,k構成的凸包內。
性質9(幾何不變性和仿射不變性) 三次三角域λα-Bézier曲面的形狀僅依賴于控制頂點Pi,j,k∈R3(i,j,k≥0,i+j+k=3),幾何變換不改變曲面的形狀。
其中,N是任意向量且N∈Rd(d=3),M是一任意k×k(k=3)階矩陣。
性質10(角點性質) 當i+j+k=3時,有:
性質11(退化性) 當α1=α2=α3=λ=1時,三次三角域λα-Bézier曲面退化為三次三角域Bézier曲面。
性質12(形狀可調性) 當Pi,j,k(i,j,k≥0,i+j+k=3)固定時,可以改變形狀參數α1,α2,α3,λ的值來控制曲面的形狀。
圖1為給定同一控制點Pi,j,k下,形狀參數α1,α2,α3,λ分別取不同值時得到的三次三角域λα-Bézier曲面。可以看出各參數的效果:
(1)λ趨于1 時,曲面整體就越靠近控制網格,如圖1a~圖1c所示。

Figure 1 Influence of different values of λ,α1,α2 and α3 on the surface圖1 λ、α1、α2、α3分別取不同值時對曲面的影響
(2)α1、α2、α3控制效果是類似的,這也與基函數的性質3相對應。它們各自控制著相應角點處的局部曲面形狀,是對稱的。其中α1控制著角點P300的局部曲面形狀,α1越趨于0,P300的局部曲面越靠近線段P210P201。α1越趨于1,P300處的局部曲面越靠近P300,如圖1d~圖1f所示。同理可得:α2控制著角點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基函數[1]:
(7)
定義3給定面積坐標(u,v,w),其中u,v,w≥0,u+v+w=1,呈三角陣列的控制頂點Pi,j,k(i,j,k≥0,i+j+k=n)∈R3,稱:
(8)
為帶形狀參數α1,α2,α3,λ的n次三角域Bézier曲面,簡稱為n次三角域λα-Bézier曲面。
本文將λα-Bézier曲面與文獻[11]中擴展的Bézier曲面進行了如下比較:
(1)以控制網格為目標函數,引入2-范數來衡量曲面到控制網格的距離,2-范數越小,距離越短,逼近程度越高。
當λα-Bézier曲面比文獻[11]中擴展Bézier曲面更貼近控制網格時,有:

(2)比較文獻[11]算法和本文算法的時間復雜度,借助Matlab秒表計時函數計算出各種算法的運行時間,以運行時間近似替代。為減少誤差算法運行時間按如下方式統計:每種算法一組實驗執行100次循環,取100次運行時間的平均值,進行10組實驗,再取10組平均運行時間的最優值,比較2種算法的運行時間最優值。多次實驗后可以看出,改進算法略有領先,但基本上兩者相差不大。

Figure 2 Comparison of curved surfaces from different angles圖2 不同角點視角曲面對比圖
(3)λα-Bézier曲面和文獻[11]中擴展Bézier曲面都能全局和局部地修改形狀,但λα-Bézier曲面具有全局形參和局部形參,文獻[11]中曲面形狀的全局修改還是依靠共同修改多局部形參,且參數過多。
算法對比如表1所示。

Table 1 Comparison of different algorithms表1 不同算法的對比
給定2張三次三角域Bézier曲面

由三角域Bézier曲面的拼接條件[12]知,若滿足:

則2張三次三角域Bézier曲面r1(u,v,w)和r2(u,v,w)在公共邊界(w=0)實現C1連續。
定理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曲面繞角點的C1拼接實例
給定2張三次三角域Bézier曲面:
(9)
其中,Qi,j,k為曲面r2(u,v,w)上的點坐標。
由三角域Bézier曲面的拼接條件[11]知:
當i,j≥0,i+j+k=3時滿足:
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)實現G0連續;
實現G1連續需在式(10)基礎上還滿足:
(11)
其中,ε和η為自由因子。
式(10)可轉化為:
(12)
則同時滿足式(10)和式(12)時,r1(u,v,w)和r2(u,v,w)在公共邊界(u=0)實現G1連續。
給定2張三次三角域λα-Bézier曲面:
(13)


Figure 5 Jointing of cubic triangular λα-Bézier surfaces圖5 三次三角域λα-Bézier曲面的G1拼接
又可以將式(13)改寫為:
(14)

當i,j≥0,i+j+k=3時滿足:
(15)
(16)

將式(6)和式(16)代入式(14)可得:
(17)
實現G1連續需在式(17)基礎上還滿足:
(18)
將式(6)、式(17)代入式(18)可得:
(19)

本文構造了帶有形狀參數的三次三角域Bézier曲面,在繼承三次三角域Bézier曲面原有性質外,曲面滿足C1、G1連續的融合條件也比較簡單,文中給出了一些參數不同取值下的曲面形狀可調的實例。此外,本文在保持基函數次序不變的情況下,給出了可調的局部形狀參數和全局形狀參數,可以根據需求更方便地調節曲面的形狀。