魏子華,嚴(yán)蘭蘭
(東華理工大學(xué)理學(xué)院,330013,南昌)
Bézier方法是現(xiàn)代計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)中使用最廣的方法之一,它能夠受到如此廣泛的應(yīng)用得益于自身的諸多良好性質(zhì),例如端點(diǎn)插值、對(duì)稱性、幾何不變性與仿射不變性、凸包性等,而它的諸多良好性質(zhì)都?xì)w功于Bernstein基函數(shù)優(yōu)秀的代數(shù)性質(zhì)。盡管Bézier方法有諸多便捷之處,但它在曲線曲面形狀調(diào)整方面仍然存在不足,要想調(diào)整曲線曲面的形狀就只有改變控制頂點(diǎn)的位置,這給計(jì)算帶來(lái)不便的同時(shí)還可能會(huì)違背設(shè)計(jì)者的意圖。另外,單一的Bézier曲線曲面要想表示較為復(fù)雜形狀就只能提高其次數(shù),但由于Bézier方法具有整體控制卻缺乏局部調(diào)整的性質(zhì),任何局部的修改都會(huì)牽一發(fā)而動(dòng)全身,所以在實(shí)際運(yùn)用中Bézier曲線曲面的次數(shù)超過10次是禁忌的[1]。因此為了滿足工業(yè)生產(chǎn)對(duì)于描述復(fù)雜形狀的需求, 往往會(huì)采取Bézier曲線曲面組合拼接的方式, 拼接時(shí)需要考慮光滑度的問題。對(duì)于G1連續(xù),除了需要滿足位置連續(xù)以外,還需要滿足3個(gè)控制頂點(diǎn)共線, 對(duì)此需要通過一定的計(jì)算來(lái)選取合適的控制頂點(diǎn)。相鄰曲線拼接若要滿足較高光滑度則需要滿足較為復(fù)雜的條件。
對(duì)于Bézier方法在曲線曲面形狀調(diào)整方面的不足,已有許多文獻(xiàn)提出了解決辦法,這類文獻(xiàn)大多是構(gòu)造含參數(shù)的基函數(shù),使其定義的曲線曲面具有類似Bézier曲線曲面的諸多良好性質(zhì),且能通過調(diào)整形狀參數(shù)值來(lái)調(diào)整曲線曲面的形狀。有的學(xué)者在代數(shù)多項(xiàng)式空間中對(duì)Bézier方法進(jìn)行改進(jìn),例如,王海波等[2]由三次Bernstein基函數(shù)擴(kuò)展定義了一種帶2個(gè)形狀參數(shù)的四次多項(xiàng)式基函數(shù);Hu Guang等[3]由n次Bernstein基函數(shù)定義了帶n個(gè)形狀參數(shù)的n次多項(xiàng)式基函數(shù)(n≥2);李軍成等[4]利用遞推性質(zhì)定義了帶2個(gè)形狀參數(shù)的n次曲線(n≥3),對(duì)同次Bézier方法進(jìn)行了擴(kuò)展;除此之外,文獻(xiàn)[5-7]都是在代數(shù)多項(xiàng)式空間上對(duì)Bézier方法進(jìn)行改造。也有學(xué)者在非代數(shù)多項(xiàng)式空間中對(duì)Bézier方法進(jìn)行改進(jìn),例如,張貴倉(cāng)等[8]在三角函數(shù)空間定義了帶4個(gè)參數(shù)的三次多項(xiàng)式曲線;Hu Guang等[9]在雙曲函數(shù)空間定義了帶4個(gè)參數(shù)的四次多項(xiàng)式曲線曲面;TAN X W等[10]在三角函數(shù)空間定義了帶2個(gè)參數(shù)的五次多項(xiàng)式曲線;除此之外,文獻(xiàn)[11-14]也是在非代數(shù)多項(xiàng)式空間進(jìn)行Bézier方法的擴(kuò)展。還有學(xué)者同時(shí)在代數(shù)和非代數(shù)多項(xiàng)式空間對(duì)Bézier方法進(jìn)行擴(kuò)展,例如,王成偉[15]以三次Bernstein基函數(shù)和二次三角Bézier型曲線的基函數(shù)為工具構(gòu)造了一組帶3個(gè)參數(shù)的三次基函數(shù);Zhu Yuanpeng[16]等將代數(shù)多項(xiàng)式空間的三次Bernstein基函數(shù)與指數(shù)函數(shù)相結(jié)合, 構(gòu)造了一組帶2個(gè)參數(shù)的三次基函數(shù);拓明秀[17]等將代數(shù)多項(xiàng)式空間的三次Bernstein基函數(shù)和三角多項(xiàng)式空間的三次類Bernstein基函數(shù)相結(jié)合構(gòu)造了一組帶3個(gè)形狀參數(shù)的三次基函數(shù)。從代數(shù)多項(xiàng)式空間進(jìn)行Bézier方法擴(kuò)展,計(jì)算簡(jiǎn)單但不能很好地表示圓錐截線,在非代數(shù)多項(xiàng)式空間進(jìn)行Bézier方法擴(kuò)展,不便于計(jì)算但能更好地表示圓錐截線。
文獻(xiàn)[2-17]所定義的曲線曲面,不僅保留了Bézier曲線曲面的諸多良好性質(zhì),而且能夠在不改變控制頂點(diǎn)的前提下,通過調(diào)整形狀參數(shù)來(lái)達(dá)到改變曲線曲面形狀的目的。但這些文獻(xiàn)鮮有考慮拼接方法的難易性,其中的曲線曲面拼接往往需要較為復(fù)雜的條件以實(shí)現(xiàn)較高階的幾何連續(xù)性或者參數(shù)連續(xù),在實(shí)現(xiàn)低階連續(xù)時(shí)也并未給出比Bézier方法更為簡(jiǎn)便的拼接條件。
工業(yè)生產(chǎn)中對(duì)于光滑度要求較低的生活物品的制造,往往不需要高階連續(xù),G1連續(xù)足以滿足需求。為了能在簡(jiǎn)單條件下實(shí)現(xiàn)G1光滑拼接,這里定義了一類n(n≥2)次曲線,它們都可以在不改變控制頂點(diǎn)的情況下,通過改變參數(shù)值達(dá)到調(diào)整首、末端點(diǎn)位置的目的,當(dāng)n≥4時(shí)還可以通過調(diào)整參數(shù)值自由調(diào)整曲線內(nèi)部形狀。同時(shí)定義了對(duì)應(yīng)的曲面,它們和曲線一樣,也可以通過調(diào)整形狀參數(shù)值達(dá)到調(diào)整形狀的目的。曲線拼接時(shí),只需第1段曲線控制多邊形的最后一條邊與第2段曲線控制多邊形的第1條邊重合、且兩參數(shù)之和為1,即可實(shí)現(xiàn)G1連續(xù),同理對(duì)應(yīng)的曲面也可以在簡(jiǎn)單的條件下實(shí)現(xiàn)G1光滑拼接。
定義1:對(duì)于任意t∈[0,1],參數(shù)α,γ∈[0,1)、β∈(0,1],稱如下函數(shù)組為帶3個(gè)參數(shù)的n階Bernstein基函數(shù),簡(jiǎn)稱n階αβγ-B基。
當(dāng)n=2時(shí),稱t的二次多項(xiàng)式
(1)
為2階αβγ-B基;
當(dāng)n=3時(shí), 稱t的四次多項(xiàng)式
(2)
為3階αβγ-B基;值得注意的是,當(dāng)n=3時(shí)t的三次多項(xiàng)式同樣存在,t的三次多項(xiàng)式為
由于n=3時(shí)的四次多項(xiàng)式更符合不同階αβγ-B基的構(gòu)造方式,且能更精確地表示圖形,同時(shí)為在后文的證明及拼接不引發(fā)歧義,故n=3時(shí)都采用t的四次多項(xiàng)式。當(dāng)n為偶數(shù)且n≥4時(shí),稱t的n+1次多項(xiàng)式
(3)
為n階αβγ-B基;當(dāng)n為奇數(shù)且n≥5時(shí)稱t的n+1次多項(xiàng)式
(4)
下面用Bernstein基函數(shù)來(lái)表示n階αβγ-B基,其中當(dāng)n=2時(shí)
(5)
當(dāng)n=3時(shí)
(6)
當(dāng)n為偶數(shù)且n≥4時(shí)
(7)
當(dāng)n為奇數(shù)且n≥5時(shí)
(8)
由定義容易得到αβγ-B基的如下性質(zhì)。
1)非負(fù)性:當(dāng)參數(shù)α,γ∈[0,1),β∈(0,1]時(shí),對(duì)任意t∈[0,1]都有fn,i(t)≥0(n=2,3,4,…, 0≤i≤n)。
證明:由Bernstein基函數(shù)的非負(fù)性以及參數(shù)范圍容易得到式(5)~式(8)中fn,i(t)≥0(n=3,4,…,0≤i≤n)。
3)對(duì)稱性:對(duì)任意t∈[0,1],當(dāng)α=γ時(shí),有fn,i(t)=fn,n-i(1-t)。
證明:由式(5)~式(8)及Bernstein基函數(shù)的對(duì)稱性易知。
4)端點(diǎn)性質(zhì):對(duì)n=2,3,4,…,0≤i≤n,αβγ-B基在端點(diǎn)處的函數(shù)值如下
(9)
當(dāng)n=2時(shí)αβγ-B基在端點(diǎn)處的一階導(dǎo)如下:
(10)
當(dāng)n=3,4,…, 0≤i≤n時(shí)αβγ-B基在端點(diǎn)處的一階導(dǎo)如下:
(11)
證明:假設(shè)
(12)
其中kn,i∈R。
①當(dāng)n=2時(shí),將式(5)代入式(12)中,整理得
由二次Bernstein基函數(shù)的線性無(wú)關(guān)性可知
k2,0(1-α)+k2,1α=0;k2,1=0;k2,1γ+k2,2(1-γ)=0
易得此方程組的解為k2,i=0(i=0,1,2)。
②當(dāng)n=3時(shí),將式(6)代入式(12)中,整理得
由四次Bernstein基函數(shù)的線性無(wú)關(guān)性可知
易求得此方程組的解為k3,i=0(i=0,1,2,3)。n≥4時(shí)同理可證。
定義2:給定n+1個(gè)控制頂點(diǎn)Pi∈d(d=2,3, 0≤i≤n,n≥2),參數(shù)α,γ∈[0,1),β∈(0,1], 對(duì)任意t∈[0,1],定義曲線
為n階αβγ-Bézier曲線。
αβγ-Bézier曲線具有如下性質(zhì)。
1)端點(diǎn)性質(zhì):由αβγ-B基的端點(diǎn)性質(zhì),可以推出對(duì)于n=2,3,4,…,0≤i≤n,αβγ-Bézier曲線的端點(diǎn)位置如下
(13)
當(dāng)n=2時(shí),αβγ-Bézier曲線的端點(diǎn)導(dǎo)矢如下
(14)
當(dāng)n=3,4,…, 0≤i≤n時(shí),αβγ-Bézier曲線的端點(diǎn)導(dǎo)矢如下
(15)
2)幾何不變性:由αβγ-B基的規(guī)范性可知,αβγ-Bézier曲線的形狀不依賴坐標(biāo)系的選取。
3)凸包性:由αβγ-B基的規(guī)范性和非負(fù)性可知,αβγ-Bézier曲線rn(t)恒位于由控制頂點(diǎn)Pi(0≤i≤n,n≥2)確定的凸包中。
4)形狀可調(diào)性:在不改變控制頂點(diǎn)位置的條件下,調(diào)整αβγ-B基中的任意參數(shù)值,都能改變?chǔ)力娄?Bézier曲線的形狀,其中調(diào)整參數(shù)α?xí)绊懬€的起點(diǎn)位置,調(diào)整參數(shù)β不會(huì)影響曲線起點(diǎn)和終點(diǎn)的位置但會(huì)改變曲線內(nèi)部形狀,改變?chǔ)脮?huì)影響曲線的終點(diǎn)位置(見圖1~圖3)。
圖1 僅改變參數(shù)α
圖2 僅改變參數(shù)β
圖3 僅改變參數(shù)γ
從圖1可以看出僅改變參數(shù)α?xí)r曲線的起點(diǎn)位置會(huì)發(fā)生改變,α越小起點(diǎn)越靠近首個(gè)控制頂點(diǎn),當(dāng)α=0時(shí)曲線首端與首個(gè)控制頂點(diǎn)重合;從圖2可以看出僅改變參數(shù)β時(shí)曲線的起點(diǎn)和終點(diǎn)位置不發(fā)生改變,但曲線形狀會(huì)改變;從圖3可以看出僅改變參數(shù)γ時(shí)曲線的終點(diǎn)位置會(huì)發(fā)生改變,γ越小終點(diǎn)越靠近最后一個(gè)控制頂點(diǎn),當(dāng)γ=0時(shí)曲線末端與最后一個(gè)控制頂點(diǎn)重合。
5)對(duì)稱性:由αβγ-B基的對(duì)稱性知,當(dāng)α=γ時(shí),控制頂點(diǎn)Pi(i=n,n-1,…,0;n≥2)和Pi(i=0,1,…,n;n≥2)定義的αβγ-Bézier曲線具有相同的形狀。由圖1~圖3易知。
由于G1連續(xù)條件對(duì)于曲線而言要求不高,在低階曲線上的適用性更強(qiáng),故先討論所構(gòu)造的低階曲線拼接條件。
(16)
其中,h1=u2-u1,h2=u3-u2。
由式(13)、式(16)可知
(17)
由式(14)、式(15)及式(16)可知
(18)
即滿足G1連續(xù)條件,故曲線T(u)在公共連接點(diǎn)處G1連續(xù)。雖然低次曲線G1連續(xù)拼接更有意義,但任意次曲線的G1連續(xù)拼接能為工業(yè)生產(chǎn)制造提供更多選擇,故下面討論任意次曲線的G1拼接條件。
設(shè)有m條大于等于二階的αβγ-Bézier曲線段
其中j表示曲線段的序號(hào),第j條曲線的階用nj表示,Pj,i表示第j條曲線的第i+1個(gè)控制頂點(diǎn),αj,βj,γj表示第j條曲線段的參數(shù),其中二階和三階αβγ-Bézier曲線段中不含參數(shù)β,在運(yùn)用時(shí)注意省略。j=1,2,…,m,0≤i≤nj,m≥2,nj≥2,t∈[0,1],αj,γj∈[0,1),βj∈(0,1]。
定理1:給定節(jié)點(diǎn)向量u1 (19) 其中hj=uj+1-uj,j=1,2,…,m。 若這m條曲線段的控制頂點(diǎn)和形狀參數(shù)滿足條件 (20) 則曲線R(u)在公共連接點(diǎn)處G1連續(xù)。 證明:由式(13)及式(19)可知 (21) 當(dāng)nj-1=nj=2時(shí),由式(14)及式(19)可知 (22) 當(dāng)nj-1=2,nj≥3時(shí),由式(14)、(15)及式(19)可知 (23) 當(dāng)nj-1≥3,nj=2時(shí), 式(14)、(15)及式(19)可知 (24) 當(dāng)nj,nj-1≥3時(shí),由式(15)及式(19)可知 (25) 要使曲線R(u)在公共連接點(diǎn)處G1連續(xù),需滿足 (26) 給定m條大于等于二階的αβγ-Bézier曲線段,假設(shè)所要構(gòu)造的組合曲線是由這m條曲線段組成的。由2.2節(jié)中約定的記號(hào)可知,組合曲線的首、末兩端控制頂點(diǎn)分別為P1,0和Pm,nm,每段曲線的內(nèi)控制頂點(diǎn)為Pj,i(j=1,2,…,m, 0≤i≤nj),由定理1可知只要控制頂點(diǎn)滿足Pj-1,nj-1-1=Pj,0,Pj-1,nj-1=Pj,1,參數(shù)滿足αj=1-γj-1,組合曲線在公共連接點(diǎn)處就滿足G1連續(xù),其中j=2,3,…,m。 注:要想構(gòu)造封閉的組合曲線,除了滿足上述要求,還需滿足Pm,nm-1=P1,0,Pm,nm=P1,1,α1=1-γm,以此保證組合曲線首尾相接且在連接處G1連續(xù)。 圖4~圖6為用上述方法構(gòu)造的組合曲線,其中空心圓點(diǎn)代表控制頂點(diǎn),星號(hào)表示分段連接點(diǎn)。 圖4 插值于首、末端點(diǎn)的G1連續(xù)開曲線 圖5 G1連續(xù)閉曲線 圖6 未插值于首、末端點(diǎn)G1連續(xù)開曲線 由圖4~圖6可見不同次數(shù)的αβγ-Bézier曲線可以自由拼接,拼接時(shí)能夠在不改變控制頂點(diǎn)的前提下,通過改變其中的形狀參數(shù)局部調(diào)整曲線形狀。從圖4和圖6中可以看出組合αβγ-Bézier曲線可以插值于首、末端點(diǎn),也可以不插值于首、末端點(diǎn),這取決于第一段的參數(shù)α和最后一段的參數(shù)γ取何值。 眾所周知G1拼接涉及到第1段曲線的后2個(gè)控制頂點(diǎn)和第2段曲線的前2個(gè)控制頂點(diǎn),G2拼接涉及到第1段曲線的后3個(gè)控制頂點(diǎn)和第2段曲線的前3個(gè)控制頂點(diǎn)。對(duì)于高階曲線而言G2連續(xù)是比G1連續(xù)更好的連續(xù)性選擇,但所需滿足的條件也隨之提高。下面將討論2條三階αβγ-Bézier曲線的G2連續(xù)拼接條件。 設(shè)有2條三階αβγ-Bézier曲線段 給定節(jié)點(diǎn)u1 (27) 其中,h1=u2-u1,h2=u3-u2。 給定定理1中的條件,由式(13)、式(27)可知 (28) 由式(15)、式(27)可知 (29) 由式(2)可知三階αβγ-B基在端點(diǎn)處的二階導(dǎo)如下 可推知三階αβγ-Bézier曲線在端點(diǎn)處的二階導(dǎo)如下 (30) 要使得組合曲線在拼接點(diǎn)處G2連續(xù),則需要滿足 (31) 由組合曲線滿足定理1中給定的預(yù)處理?xiàng)l件可知T(u)在拼接點(diǎn)處G1連續(xù),即滿足式(31)中的條件(a)、(b),只需要再滿足式(31)中的條件(c),組合曲線T(u)在拼接點(diǎn)處就能夠達(dá)到G2連續(xù)。 (32) 即對(duì)于任意的參數(shù)λ2而言,只要控制頂點(diǎn)滿足式(32),組合曲線就能達(dá)到G2連續(xù)。 定義3:給定(m+1)×(n+1)個(gè)控制頂點(diǎn)Pij∈3(i=0,1,…,m,i=0,1,…,n,m,n≥2),參數(shù)α1,γ1,α2,γ2∈[0,1),β1,β2∈(0,1],對(duì)任意u,v∈[0,1],定義曲線 為m×n階αβγ-Bézier曲面。 αβγ-Bézier曲面具有與αβγ-Bézier曲線類似的性質(zhì),例如幾何不變性、對(duì)稱性、形狀可調(diào)性、凸包性等。下面給出αβγ-Bézier曲面的拼接條件及證明。 定理2:設(shè)有若干個(gè)m×nk階的αβγ-Bézier曲面 (33) (34) 則曲面p(u,v)在公共連接線處G1連續(xù)。 證明:由式(9)、式 (33)可得 (35) 由式(10)、式(35)可知,當(dāng)nk=2時(shí),有 (36) 當(dāng)nk-1=2時(shí),有 (37) 由式(11)、式(33)可知,當(dāng)nk≥3時(shí),有 (38) 當(dāng)nk-1≥3時(shí),有 (39) 若階為m×nk-1的曲面與階為m×nk的曲面滿足 (40) 則組合曲面在拼接處G1連續(xù)。 圖7 G1連續(xù)組合曲面 本文定義了n階αβγ-Bézier曲線,并將其推廣至曲面,定義了m×n階αβγ-Bézier曲面。該曲線具有Bézier曲線的諸多良好性質(zhì),且能夠在不改變控制頂點(diǎn)的情況下通過調(diào)整參數(shù)改變形狀。二階和三階αβγ-Bézier曲線在端點(diǎn)處可調(diào),更高階的曲線在端點(diǎn)處及內(nèi)部都可調(diào),同時(shí)αβγ-Bézier曲線的G1拼接條件非常簡(jiǎn)便。但是由于提高二階Bézier曲線的次數(shù)會(huì)使得參數(shù)的選取范圍受限,影響其他次數(shù)的曲線構(gòu)造,因此構(gòu)造二階αβγ-Bézier曲線曲面時(shí)相對(duì)于二階Bézier而言并未提高次數(shù)。G1連續(xù)是工業(yè)設(shè)計(jì)中較為實(shí)用的一種連續(xù)條件,能滿足大多數(shù)簡(jiǎn)單工藝生產(chǎn)的需求。本文給出的曲線曲面既能比Bézier曲線更易于實(shí)現(xiàn)G1連續(xù)拼接,而且能實(shí)現(xiàn)在不改變控制頂點(diǎn)的前提下自由調(diào)整形狀的目標(biāo),因此使用更加方便。2.3 G1連續(xù)組合曲線的構(gòu)造
2.4 曲線的G2拼接條件
3 曲面及其應(yīng)用
3.1 曲面定義及G1連續(xù)拼接條件
3.2 G1連續(xù)組合曲面的構(gòu)造
4 結(jié)束語(yǔ)