郭大勇, 成佳頤
(清華大學(xué)機(jī)械工程系,北京 100084)
在計(jì)算機(jī)輔助幾何設(shè)計(jì)(computer aided geometric design,CAGD)和計(jì)算機(jī)圖形學(xué)(computer graphics,CG)領(lǐng)域中,常利用參數(shù)化的曲線曲面來進(jìn)行交互式設(shè)計(jì)。當(dāng)在表示曲線或曲面的時(shí)候,如果想要保持曲線曲面的形狀,很重要的一點(diǎn)就是基函數(shù)的選取。因此,以Bernstein多項(xiàng)式作為基函數(shù)的Bézier曲線曲面模型有著廣泛的應(yīng)用[1]。但是該模型的不足之處在于,若需要根據(jù)需求調(diào)整Bézier曲線曲面的形狀,就必須對(duì)原始控制點(diǎn)進(jìn)行調(diào)整,這不便于實(shí)際使用。為了改善這種情況,一種可行的方法就是對(duì)Bernstein基函數(shù)添加形狀參數(shù),使得在原始控制點(diǎn)不變的情況下,實(shí)現(xiàn)對(duì)Bézier曲線曲面的調(diào)整。
近些年來,這種Bézier曲線的擴(kuò)展方法大致分成三類[2],分別為利用三角多項(xiàng)式思想;利用代數(shù)雙曲思想和利用多項(xiàng)式思想。其中,利用多項(xiàng)式思想的Bézier曲線擴(kuò)展的研究成果如下:文獻(xiàn)[3-6]分別給出了Bézier曲線的二次,三次,四次和五次含參擴(kuò)展。文獻(xiàn)[7-10]給出了Bézier曲線的n次含參擴(kuò)展,其中文獻(xiàn)[7-9]直接給對(duì)應(yīng)的基函數(shù)表達(dá)式,而在文獻(xiàn)[10]中,作者利用de Casteljau算法將4次含參Bernstein基函數(shù)遞推到了n次。
本文根據(jù)二項(xiàng)式((1-t)+t)n-1的展開系數(shù),引入含參的正系數(shù)矩陣Ann,在此基礎(chǔ)上推導(dǎo)出了同階含參的A-Bernstein基函數(shù)表達(dá)式,該表達(dá)式與Bernstein基函數(shù)具有類似的性質(zhì),對(duì)應(yīng)A-Bézier曲線不僅有Bézier曲線的特性,而且可以通過改變參數(shù)來實(shí)現(xiàn)對(duì)曲線的調(diào)整。另外,通過對(duì)正系數(shù)矩陣Ann進(jìn)行調(diào)節(jié),亦可以實(shí)現(xiàn)對(duì)A-Bézier曲線的調(diào)整,使曲線的調(diào)控更加靈活。
定義1.當(dāng)aij≥0(i,j=1,2,…,n)時(shí)
為所需的正系數(shù)方陣。
定義2.當(dāng)t∈[0,1],i=1,2,…,n時(shí),稱關(guān)于t的多項(xiàng)式:
為n–1次Bernstein基函數(shù),恰好對(duì)應(yīng)二項(xiàng)式1((1-t)+t)n-1的展開項(xiàng)。其作為n–1次Bézier曲線的基函數(shù),具有諸多優(yōu)良性質(zhì),如正性、權(quán)性和對(duì)稱性等。
定義3.對(duì)于[]0,1t∈,Bézier曲線的控制多邊形頂點(diǎn)為p1,p2,…pn,則對(duì)應(yīng)的Bézier曲線方程的矩陣形式為:
利用正系數(shù)矩陣Ann對(duì)Bernstein基函數(shù)矩陣進(jìn)行調(diào)配,可得A-Bernstein基函數(shù)Tnn=AB。為了使?jié)M足權(quán)性=1和對(duì)稱性可令A(yù)nn具有以下性質(zhì):
性質(zhì)1.
性質(zhì)2.
因此,A-Bernstein基函數(shù)對(duì)應(yīng)的A-Bézier曲線為
對(duì)應(yīng)的控制點(diǎn)矩陣:
其中,=p1a1m+p2a2m+…+pnanm,m=1,2,…,n
新的控制點(diǎn)為原始控制點(diǎn)的加權(quán)平均,為了減少計(jì)算量,限定新的控制點(diǎn)為兩點(diǎn)加權(quán)平均,并分情況給出表達(dá)式:
(1) 當(dāng)2,2,3,n=mm=…時(shí)
其中i=2,3,…,m,j=m+1,m+2,…,n-1
(2) 21,2,3,nmm=+=…時(shí)
其中i=2,3,…,m,j=m+2,m+3,…,n-1
若已知,根據(jù)性質(zhì)2,可得pj。且根據(jù)性質(zhì)1可知=ai-1,ipi-1+ai,ipi,其代表的幾何意義為:點(diǎn)按比例分線段如圖1所示。
圖1 線段的定比分點(diǎn)
向式(1)中引入?yún)?shù)λ,通過改變?chǔ)说闹祦韺?shí)現(xiàn)對(duì)新控制多邊形的調(diào)整,從而實(shí)現(xiàn)對(duì)A-Bézier曲線的調(diào)整。由于式(2) 依次對(duì)應(yīng)了二項(xiàng)式((1-t)+t)n-1的展開項(xiàng),為了減少計(jì)算量和簡(jiǎn)化表達(dá)式,令式(1)中元素的分母與((1-t)+t)n-1的展開項(xiàng)系數(shù)相同,可得aij的分母為且規(guī)定當(dāng)時(shí),aij=1。對(duì)于式(1)的同一列上的兩個(gè)元素aij的分子,本文做如下分析:
為了保證擴(kuò)展后的含參數(shù)λ的A-Bernstein基函數(shù)(t)在t∈[0,1]上隨著t的變化保持單調(diào)遞減,并且在0處取得最大值1,在1處取得最小值0。限定(t)=(1-λt)(1-t)n-2,因此可得式(1)的第一行:
根據(jù)性質(zhì)2可得Ann的最后一行:
對(duì)于正系數(shù)矩陣(1)的同一列上的兩個(gè)元素aij的分子,取其中一個(gè)為(1-)λ,另一個(gè)可根據(jù)性質(zhì)1求得,因此可得:
(1) 當(dāng)n=2m,m=2,3,…時(shí)
其中i=2,3,…,m,j=m+1,m+2,…,n-1
(2) 當(dāng)n=2m+1,m=2,3,…時(shí)
其中,i=2,3,…,m,j=m+2,m+3,…,n-1且當(dāng)n=3時(shí),a2,2=λ
由于Bézier曲線通過控制多邊形的起點(diǎn)p1與終點(diǎn)pn,所以令=p1,=pn,于是可知:
因此由式(8)~(12)可得正系數(shù)矩陣:
(1) 當(dāng)n=2m,m=2,3,…時(shí)
(2) 當(dāng)n=2m+1,m=2,3,…時(shí)
因?yàn)榫仃囍兴性貫檎?,所?-≤λ≤1。
以n=6為例,A-Bézier曲線為:
其所對(duì)應(yīng)的新控制點(diǎn)為:
其控制多邊形如圖2所示:
其中虛線為新的控制多邊形,通過改變參數(shù)的取值可以實(shí)現(xiàn)對(duì)控制多邊形的調(diào)整,由于新控制點(diǎn)始終都是原始控制點(diǎn)的二點(diǎn)加權(quán),所以保證了新曲線的凸包性。
圖2 控制多邊形
利用上述正系數(shù)矩陣可得擴(kuò)展后的A-Bernstein基函數(shù)表達(dá)式:
(1) 當(dāng)n=2m,m=2,3,…且1-≤λ≤1時(shí)
其中j=m+1,m+2,…,n時(shí)(t)=
(2) 當(dāng)n=2m+1,m=2,3,…時(shí),1-≤λ≤1時(shí)
其中j=m+2,m+3,…,n時(shí),(t)=+1-j,n(1-t)
下面給出A-Bernstein基函數(shù)的性質(zhì):
性質(zhì)1.正性
(t)=ABT(t),因?yàn)锽(t)≥0,t∈[0,1]且Annnn為正系數(shù)矩陣,所以(t)≥0,t∈[0,1]。
性質(zhì)2.權(quán)性
(t)=ABT(t),因?yàn)閚n且,m=1,2,…,n,所以1,t∈[0,1]。
性質(zhì)3.對(duì)稱性
(t)=ABT(t),因?yàn)锽(t)=B(1-t)且nni,nn-i+1,n aij=an+1-i,n+1-j,1≤i,j≤n,所以(t)=
性質(zhì)4.退化性
當(dāng)λ=1時(shí),Ann退化為單位矩陣,因?yàn)樗訟-Bernstein基函數(shù)退化為Bernstein基函數(shù)。
對(duì)應(yīng)的A-Bézier曲線具有如下性質(zhì):
性質(zhì)1.端點(diǎn)特性
(1) 端點(diǎn)位置矢量:擴(kuò)展后的曲線表達(dá)式為
(2) 端點(diǎn)切矢量:擴(kuò)展后的新控制多邊形頂點(diǎn)矩陣為:
所以:
因此表明擴(kuò)展后的曲線與首末兩邊矢相切,模長(zhǎng)關(guān)系確定。
性質(zhì)2.對(duì)稱性
若保持控制多邊形頂點(diǎn)的位置不變,只是把順序顛倒,那么新Bézier曲線與原曲線重合。
性質(zhì)3.凸包性
因?yàn)?t)=1,t∈[0,1]且(t)≥0,t∈[0,1],所以有:
此式與重心的位置公式相同,分母可代表一個(gè)總質(zhì)量為1的質(zhì)點(diǎn)系,而該系統(tǒng)中各質(zhì)點(diǎn)的位置矢量就為pi,質(zhì)點(diǎn)的質(zhì)量按照(t)分布,所以(t)為重心的位置。當(dāng)t在[0,1]間變化時(shí),各質(zhì)點(diǎn)的質(zhì)量也在隨(t)變化,所以變化的(t)的軌跡就為對(duì)應(yīng)的Bézier曲線,因此,s(t)上各點(diǎn)必然在pi的凸包內(nèi)。
性質(zhì)4.幾何不變性
由于Bézier曲線具有幾何不變性,Ann為正系數(shù)矩陣且具有性質(zhì)1和性質(zhì)2,這使得調(diào)配后的Bézier仍有幾何不變性。
性質(zhì)5.退化性
當(dāng)λ=1時(shí),A-Bézier曲線將退化成Bézier曲線。
當(dāng)n=6,t∈[0,1],λ∈[-4,1]時(shí),對(duì)應(yīng)的正系數(shù)矩陣Ann,A-Bernstein基函數(shù)和圖像,及對(duì)應(yīng)的A-Bézier曲線圖像:
圖3左側(cè)為5次A-Bézier曲線,從上到下對(duì)應(yīng)λ=1,0,-1,-2,-3,-4,當(dāng)λ=1時(shí)退化為標(biāo)準(zhǔn)Bézier曲線;右側(cè)為λ=1,0,-1,-2,-3,-4時(shí)的A-Bernstein基函數(shù)曲線。
圖3 5次A-Bézier曲線與A-Bernstein基函數(shù)曲線
通過改變?chǔ)说姆秶?,可以在某方向上調(diào)整A-Bézier曲線。在保持Ann的性質(zhì)1,2的基礎(chǔ)上,通過添加參數(shù)的方法,可令A(yù)-Bézier曲線在多個(gè)方向上進(jìn)行調(diào)整。以n=6為例,向Ann添加參數(shù)β,可得:
當(dāng)t∈[0,1],λ,β∈[-4,1]時(shí),對(duì)應(yīng)的A-Bernstein基函數(shù)為:
可以通過對(duì)兩個(gè)參數(shù)λ,β取不同的值實(shí)現(xiàn)曲線在多個(gè)方向上的調(diào)整,圖4中虛線對(duì)應(yīng)的參數(shù)分別為λ=1,β=-4和λ=-4,β=1,實(shí)現(xiàn)在了不同方向上的調(diào)整。
圖4 曲線的含參調(diào)整
在保證Ann的性質(zhì)1和性質(zhì)2的基礎(chǔ)上,通過對(duì)Ann的列元素進(jìn)行移動(dòng),可實(shí)現(xiàn)對(duì)曲線“胖瘦”的調(diào)整。以n=6為例,令第三列元素循環(huán)下移一個(gè)單位,令第四列元素循環(huán)上移一個(gè)單位,可得:
當(dāng)t∈[0,1],λ∈[-5,1]時(shí),對(duì)應(yīng)的A-Bernstein基函數(shù)為:
如圖5所示,上下為變化前后的A-Bézier曲線和A-Bernstein基函數(shù)曲線,由于移動(dòng)了Ann的列元素,使得矩陣元素更加集中,從而導(dǎo)致了A-Bernstein基函數(shù)的更加緊湊,所以使得對(duì)應(yīng)的A-Bézier曲線更加“瘦”,圖6中為調(diào)整前后的Bézier曲線。
圖5 矩陣元素調(diào)整前后的曲線
圖6 矩陣元素調(diào)整后的曲線
利用5次A-Bézier曲線繪制花瓣圖形,圖7為含單參的A-Bézier曲線,其中λ=-4,-3,-2,-1,0,1。圖8為含雙參的A-Bézier曲線,其中λ=-4,-3,-2,-1,0,1,β=1,0,-1,-2,-3,-4。圖9為利用正系數(shù)矩陣的列元素位移使得A-Bézier曲線變“瘦”的實(shí)例。
圖7 含單參的A-Bézier曲線
圖8 含雙參的A-Bézier曲線
圖9 矩陣元素位移后的曲線
以Bernstein多項(xiàng)式作為基函數(shù)的Bézier曲線曲面,憑借著其許多良好的幾何性質(zhì),在CAGD,CG領(lǐng)域有著廣泛的應(yīng)用。論文以二項(xiàng)式的展開系數(shù)為基礎(chǔ),通過含參的正系數(shù)矩陣對(duì)Bernstein基函數(shù)進(jìn)行調(diào)配,得到了同階含參的A-Bernstein基函數(shù),以及對(duì)應(yīng)的A-Bézier曲線。證明了A-Bernstein基函數(shù)和A-Bézier曲線分別具有Bernstein基函數(shù)和Bézier曲線類似的性質(zhì),并且A-Bézier曲線的形狀在原始控制點(diǎn)不變的情況下,不但可以通過形狀參數(shù)進(jìn)行調(diào)整,還可以通過修改正系數(shù)矩陣進(jìn)行調(diào)整。最后通過舉例說明了方法可行有效,在幾何造型中方便于交互設(shè)計(jì)。
[1]施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京: 高等教育出版社,2001: 114-163.
[2]鄒 靜.Bézier曲線的擴(kuò)展研究[D].杭州: 杭州師范大學(xué),2012.
[3]韓旭里,劉圣軍.二次Bézier曲線的擴(kuò)展[J].中南工業(yè)大學(xué)學(xué)報(bào) (自然科學(xué)版),2003,34(2): 214-217.
[4]秦新強(qiáng),胡鋼,張素霞.三次Bézier曲線的新擴(kuò)展及其應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(2):112-115.
[5]劉小瓊,楊國(guó)英.帶兩個(gè)形狀參數(shù)的四次Bézier曲線的擴(kuò)展[J].圖學(xué)學(xué)報(bào),2013,34(1): 41-45.
[6]翟芳芳.帶兩個(gè)形狀參數(shù)的五次Bézier曲線的擴(kuò)展[J].大學(xué)數(shù)學(xué),2012,28(3): 59-63.
[7]劉 植,陳曉彥,張 莉,時(shí) 軍.Bézier曲線曲面的同次擴(kuò)展[J].中國(guó)科技論文在線,2011,6(10): 721-725.
[8]劉 植.Bézier曲線的擴(kuò)展[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,(8): 976-979.
[9]程黃和,曾曉明.帶形狀參數(shù)的Bézier曲線[J].廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,45(3): 320-322.
[10]嚴(yán)蘭蘭,宋來忠.帶兩個(gè)形狀參數(shù)的Bézier曲線[J].工程圖學(xué)學(xué)報(bào),2008,29(3): 88-92.