丁 格,李軍成,劉成志
(湖南人文科技學(xué)院數(shù)學(xué)與金融學(xué)院,417000,湖南,婁底)
Bézier曲線[1]作為一種幾何造型工具,以表示簡(jiǎn)單、使用靈活的特點(diǎn)被廣泛地應(yīng)用于CAD、CAGD、CG等領(lǐng)域。但眾所周知,自然界中的任何物體都有厚度,而利用沒(méi)有厚度的Bézier曲線進(jìn)行幾何造型僅僅是數(shù)學(xué)上的一種抽象或簡(jiǎn)化。若把Bézier曲線的控制頂點(diǎn)換成球域,可得到球域Bézier曲線[2]。從幾何上看,球域Bézier曲線可視為具有可變厚度的空間Bézier曲線。因此,球域Bézier曲線可用于構(gòu)造自然界中廣泛存在的管狀物體[3]。由于球域Bézier曲線與空間Bézier曲線的方程結(jié)構(gòu)相似,故Bézier曲線的諸多算法可推廣到球域Bézier曲線,如球域Bézier曲線的拼接[4],球域Bézier曲線的升階[5],球域Bézier曲線擬合散亂數(shù)據(jù)[6],球域Bézier曲線的能量極小化[7]等。
在利用球域Bézier曲線構(gòu)造實(shí)體時(shí),有時(shí)需要調(diào)整其形狀以滿(mǎn)足造型的需要。然而,當(dāng)控制球保持固定時(shí),球域Bézier曲線的形狀將無(wú)法調(diào)整,這為球域Bézier曲線在實(shí)體造型中的應(yīng)用帶來(lái)了不便。在幾何造型中,為了解決傳統(tǒng)Bézier曲線形狀不易調(diào)整的問(wèn)題,許多學(xué)者構(gòu)造了帶形狀參數(shù)的Bézier曲線,例如,基于三角函數(shù)構(gòu)造的C-Bézier曲線[8]與擬五次三角Bézier曲線[9]、基于雙曲函數(shù)構(gòu)造的H-Bézier曲線[10]、同次擴(kuò)展的Bézier曲線[11]、升階擴(kuò)展的Bézier曲線[12, 13]。這些帶有形狀參數(shù)的曲線在控制頂點(diǎn)保持不變的情形下可通過(guò)修改所含參數(shù)的取值對(duì)其形狀進(jìn)行自由調(diào)整。既然球域Bézier曲線是通過(guò)將Bézier曲線的控制頂點(diǎn)換成球域而得到,那么很自然地想到可將這些帶形狀參數(shù)Bézier曲線的控制頂點(diǎn)換成球域,從而得到相應(yīng)帶形狀參數(shù)的球域Bézier曲線。為此,本文將α-Bézier曲線的控制頂點(diǎn)換成球域,構(gòu)造出一種帶形狀參數(shù)的球域Bézier曲線,從而在控制頂球保持不變的情形下通過(guò)修改所含參數(shù)的取值實(shí)現(xiàn)對(duì)其形狀的自由調(diào)整。
給定球心為點(diǎn)pi(xi,yi,zi)半徑為ri的控制球〈pi;ri〉(i=0,1,…,n),n次球域Bézier曲線可表示為[2]
(1)
因此,球域Bézier曲線可視為由骨架pn(t)與半徑函數(shù)rn(t)構(gòu)成的具有可變厚度的曲線,如圖1所示。
(a)三次球域Bézier曲線 (b) 四次球域Bézier曲線圖1 球域Bézier曲線
不難可知,當(dāng)控制球保持不變時(shí),球域Bézier曲線也將隨之固定,這在一定程度上限制了球域Bézier曲線的應(yīng)用。為解決這一問(wèn)題,可將式(1)中的Bernstein基函數(shù)替換為某種含自由參數(shù)的基函數(shù),從而構(gòu)造出帶自由參數(shù)的球域Bézier曲線,在控制球保持固定時(shí)通過(guò)修改自由參數(shù)的取值實(shí)現(xiàn)對(duì)球Bézier曲線的形狀調(diào)整。由于通過(guò)同次擴(kuò)展所構(gòu)造的α-Bernstein基函數(shù)[11]不僅含有1個(gè)自由參數(shù),而且與傳統(tǒng)Bernstein基函數(shù)相比,其方程結(jié)構(gòu)的復(fù)雜度并未明顯提高,故下面選取α-Bernstein基函數(shù)替換式(1)中的Bernstein基函數(shù),構(gòu)造出帶參數(shù)α的球域Bézier曲線。首先給出α-Bernstein基函數(shù)的定義。
定義1[11]:設(shè)0≤t≤1,0<α≤1,稱(chēng)關(guān)于t的多項(xiàng)式
(2)
為三次α-Bernstein基函數(shù),其中0<α≤1。進(jìn)一步,稱(chēng)
gn,i(α;t)=(1-t)gn-1,i(α;t)+tgn-1,i-1(α;t),i=0,1,…,n
(3)
為n(n≥4)次α-Bernstein基函數(shù)。
基于式(2)與式(3)表示的n(n≥3)次α-Bernstein基函數(shù),可定義對(duì)應(yīng)帶參數(shù)α的球域Bézier曲線。
定義2:設(shè)0≤t≤1,給定球心為點(diǎn)pi(xi,yi,zi)半徑為ri的控制球〈pi;ri〉(i=0,1,…,n),稱(chēng)
(4)
為n(n≥3)次帶參數(shù)α的球域Bézier曲線,簡(jiǎn)稱(chēng)為α-BBC,其中g(shù)n,i(α;t)(i=0,1,…,n)為式(2)與式(3)表示的α-Bernstein基函數(shù)。
注1:由于當(dāng)α=1時(shí)式(2)與式(3)表示的α-Bernstein基函數(shù)即為Bernstein基函數(shù)[1],故由式(4)不難可知,當(dāng)α=1時(shí)α-BBC即為式(1)表示的球域Bézier曲線。因此,α-BBC是傳統(tǒng)球域Bézier曲線的一種擴(kuò)展。
為方便討論,不妨記Qi=〈pi;ri〉,于是式(4)可改寫(xiě)為
(5)
因此,α-BBC也可視為將α-Bézier曲線[11]的控制頂點(diǎn)替換為控制球而定義。根據(jù)α-Bézier曲線的性質(zhì),可得α-BBC的性質(zhì)。
定理1:由式(5)表示的α-BBC具有如下性質(zhì)。
1)對(duì)稱(chēng)性:分別由控制球Qn-i(i=0,1,…,n)與控制球Qi(i=0,1,…,n)定義的α-BBC相同,但參數(shù)化方向相反,即
〈G〉(α;t;Q0,Q1,…,Qn)=〈G〉(α;1-t;Qn,Qn-1,…,Q0)
(6)
2)端點(diǎn)性:α-BBC在兩端點(diǎn)處滿(mǎn)足
(7)
3)幾何不變性:α-BBC的形狀僅依賴(lài)于控制球與參數(shù)α的取值,而與坐標(biāo)系的選取無(wú)關(guān),即在控制球與參數(shù)α保持不變時(shí),α-BBC的形狀經(jīng)過(guò)旋轉(zhuǎn)、坐標(biāo)系平移、按比例伸縮等幾何變換后保持不變。
4)形狀可調(diào)性:當(dāng)控制球保持固定時(shí),參數(shù)α取不同值將得到不同形狀的α-BBC,即可通過(guò)修改α的取值實(shí)現(xiàn)對(duì)α-BBC的形狀調(diào)整。
證明:1) 由式(2)與式(3)經(jīng)簡(jiǎn)單計(jì)算可得gn,i(α;t)=gn,n-i(α;1-t)。于是,由式(5)有
此即表明式(6)成立。
2)由式(2)與式(3)經(jīng)計(jì)算可得
于是,由式(5)經(jīng)計(jì)算可得式(7)成立。
3)由于α-BBC可看作是將對(duì)應(yīng)α-Bézier曲線中的控制頂點(diǎn)替換為控制球,故α-Bézier曲線滿(mǎn)足的幾何不變性同樣也適用于α-BBC。
4)由于α-BBC的表達(dá)式中含有參數(shù)α,故在控制球保持不變的情形下,修改參數(shù)α的取值顯然會(huì)改變?chǔ)?BBC的形狀,如圖2~圖4所示。由圖2~圖4可知,隨著參數(shù)α取值的變小,α-BBC越來(lái)越遠(yuǎn)離其骨架。故在實(shí)際應(yīng)用中,可通過(guò)修改參數(shù)α的取值實(shí)現(xiàn)對(duì)α-BBC的形狀調(diào)整,這也是傳統(tǒng)球域Bézier曲線無(wú)法比擬的。
(a) α=1 (b) α=0.6 (c) α=0.4圖2 參數(shù)α取不同值時(shí)的三次α-BBC
(a) α=1 (b) α=0.5 (c) α=0.2圖3 參數(shù)α取不同值時(shí)的四次α-BBC
(a) α=1 (b) α=0.45 (c) α=0.01圖4 參數(shù)α取不同值時(shí)的五次α-BBC
設(shè)有2條次數(shù)分別為m與n的α-BBC,其表達(dá)式分別為
(8)
式中g(shù)m,i(α1;t)(i=0,1,…,m)與hn,j(α2;t)(j=0,1,…,n)為參照式(2)與式(3)定義的α-Bernstein基函數(shù),〈pi;ri〉(i=0,1,…,m)與〈qj;sj〉(j=0,1,…,n)為2條α-BBC的控制球。
由于控制球的半徑各不相同時(shí),球Bézier曲線的表面結(jié)構(gòu)比較復(fù)雜,故一般只考慮2種情形下球域Bézier曲線的G1拼接[4]:1)圍繞拼接點(diǎn)的控制球半徑為零時(shí)球域Bézier曲線的G1拼接;2)所有控制球的半徑均相同且不為零時(shí)球域Bézier曲線的G1拼接。
因此,這里也僅考慮上述2種情形下2條α-BBC的G1拼接。為方便討論,不妨令式(8)表示的2條α-BBC的骨架分別為
于是,參照文獻(xiàn)[4]可得如下結(jié)論。
定理2:對(duì)于式(8)表示的2條α-BBC,當(dāng)控制球的半徑滿(mǎn)足rm-1=rm=s0=s1=0時(shí),若2條α-BBC的骨架p(t)與q(t)之間達(dá)到G1拼接,即
(9)
其中λ>0,則2條α-BBC之間達(dá)到G1拼接。
注2:若某條α-BBC的首、尾均需進(jìn)行拼接,則由定理2的條件可知,該條α-BBC的次數(shù)至少應(yīng)為5次才能滿(mǎn)足要求。
定理3:對(duì)于式(8)表示的2條α-BBC,當(dāng)控制球的半徑滿(mǎn)足ri=sj=c(i=0,1,…,m;j=0,1,…,n;c為不等于零的常數(shù))時(shí),若2條α-BBC的骨架p(t)與q(t)之間達(dá)到G2拼接,即
(10)
其中λ>0,μ∈R,則2條α-BBC之間達(dá)到G1拼接。
在實(shí)際問(wèn)題中,可通過(guò)取定合適的控制球使得定理2或定理3成立,從而實(shí)現(xiàn)2條α-BBC的G1拼接。例如,對(duì)于式(8)表示的2條α-BBC,當(dāng)控制球的半徑滿(mǎn)足rm-1=rm=s0=s1=0,球心pm-1、pm=q0、q1共線時(shí),不難可知式(9)成立,此時(shí)2條α-BBC之間達(dá)到G1拼接。若修改其中一條α-BBC所含的自由參數(shù),則僅會(huì)對(duì)該條α-BBC的形狀產(chǎn)生影響,此時(shí)可實(shí)現(xiàn)G1拼接α-BBC的局部調(diào)節(jié),如圖5所示;若將2條α-BBC所含的自由參數(shù)取為相同,則可通過(guò)修改這個(gè)相同的參數(shù)實(shí)現(xiàn)對(duì)G1拼接α-BBC的整體調(diào)節(jié),如圖6所示。
圖5 自由參數(shù)對(duì)G1拼接三次與四次α-BBC的局部調(diào)節(jié)
圖6 自由參數(shù)對(duì)G1拼接三次與四次α-BBC的整體調(diào)節(jié)
圖5中,三次α-BBC的參數(shù)取為α1=0.7且保持不變,四次α-BBC的參數(shù)分別取為α2=0.9與α2=0.5;在圖6中,三次α-BBC與四次α-BBC的參數(shù)相同,且分別取為α1=α2=0.7與α1=α2=0.9。
下面再給出2個(gè)由α-BBC進(jìn)行實(shí)體造型的實(shí)例。圖7為利用三次α-BBC構(gòu)造而成的燈籠,燈籠的頂部與底部為滿(mǎn)足G1拼接的三次α-BBC;圖8為利用三次α-BBC與四次α-BBC構(gòu)造而成的蝴蝶。
圖7 燈籠造型
圖8 蝴蝶造型
本文將α-Bézier曲線的控制頂點(diǎn)替換為控制球,構(gòu)造了一種帶形狀參數(shù)的球域Bézier曲線。該球域Bézier曲線與傳統(tǒng)球域Bézier曲線的性質(zhì)類(lèi)似,而且在控制球不變時(shí)可通過(guò)修改所含參數(shù)的取值實(shí)現(xiàn)對(duì)其形狀的自由調(diào)整,從而進(jìn)一步拓寬了球域Bézier曲線的應(yīng)用,也為具有可變厚度的管狀物體造型提供了一種有效手段。