秦新強(qiáng),申曉利,胡鋼
西安理工大學(xué)理學(xué)院,西安710054
曲線(xiàn)曲面的形狀修改一直是CAGD領(lǐng)域中一項(xiàng)基本的技術(shù),對(duì)于曲線(xiàn)的實(shí)用化有著重要的意義,許多學(xué)者在這一領(lǐng)域已做了大量的研究工作[1-4]。C-Bézier曲線(xiàn)曲面[4-8]作為CAGD中一種新穎的造型曲線(xiàn)曲面,不僅保留了傳統(tǒng)Bézier曲線(xiàn)曲面的許多優(yōu)點(diǎn),而且能夠方便、精確地構(gòu)造常規(guī)的二次曲線(xiàn)曲面,還具有算法簡(jiǎn)單,存儲(chǔ)空間小,參數(shù)選擇容易等特點(diǎn),因此其在描述曲線(xiàn)曲面方面有著重要的作用。本文在分析四次C-Bézier曲線(xiàn)幾何模型[9]的基礎(chǔ)上,對(duì)四次C-Bézier曲線(xiàn)的形狀調(diào)整進(jìn)行了研究,通過(guò)修改曲線(xiàn)的控制頂點(diǎn)和形狀參數(shù),分別提出了兩種調(diào)整四次C-Bézier曲線(xiàn)形狀的有效新方法,并給出了具體的實(shí)例。
定義1 對(duì)任意的t∈[0,α],α∈[0,2π],稱(chēng)為空間Φ=span{sin t,cos t,t2,t,1}上的一組正規(guī)B基[9],式中u4(t)=t2-2 cos C(t),S=sin C(α)=α-sinα,C=cos C(α)=1-cosα,cos C(t)=1-cos t,Z3(t)=sin C(t)/S。
定義2 設(shè)Pi(i=0,1,2,3,4)為曲線(xiàn)的控制頂點(diǎn)向量,α是任意實(shí)數(shù),且0≤t≤α,0≤α≤2π,則曲線(xiàn)
稱(chēng)為四次C-Bézier曲線(xiàn)[9]。其中bi(t)??(i=0,1,2,3,4)為式所定義的基函數(shù)。當(dāng)α→0時(shí),四次C-Bézier曲線(xiàn)逼近于四次Bézier曲線(xiàn)。由式(1)和(2)可以推出四次C-Bézier曲線(xiàn)具有凸包性、變差縮減性、保凸性,以及如下的端點(diǎn)性質(zhì)。
由于形狀控制參數(shù)α的引入,使得四次C-Bézier曲線(xiàn)具有比傳統(tǒng)Bézier曲線(xiàn)更強(qiáng)的曲線(xiàn)表達(dá)能力。當(dāng)曲線(xiàn)的控制頂點(diǎn)固定不變時(shí),讓?duì)猎?0,2π)之間變化可產(chǎn)生一族四次C-Bézier曲線(xiàn)。圖1給出了一族α取不同值的四次C-Bézier曲線(xiàn)圖形,圖中曲線(xiàn)從上到下對(duì)應(yīng)的參數(shù)依次取值為α=2,π,6,2π。
圖1 一族α取不同值的四次C-Bézier曲線(xiàn)
四次C-Bézier曲線(xiàn)是由基函數(shù)和控制頂點(diǎn)混合生成的,由于其基函數(shù)中引入了的形狀控制參數(shù)α,所以增強(qiáng)了四次C-Bézier曲線(xiàn)的形狀控制能力。顯然,形狀參數(shù)α和控制頂點(diǎn)都會(huì)影響著曲線(xiàn)的整體形狀。
假設(shè)控制頂點(diǎn)的位置保持不變,對(duì)于τ∈[0,1],m,n分別為xlim(0,τ)和x(2π,τ)上的點(diǎn),則可近似地認(rèn)為α軌道上的點(diǎn)s(α,τ)在mn的連線(xiàn)上,且有
這一近似方法即可以將參數(shù)α對(duì)曲線(xiàn)的作用用直觀的形式表達(dá)出來(lái),又可以為通過(guò)調(diào)節(jié)控制參數(shù)α來(lái)修改曲線(xiàn)的形狀提供了依據(jù)。
當(dāng)α減小時(shí),四次C-Bézier曲線(xiàn)逐漸靠近相應(yīng)的四次代數(shù)多項(xiàng)式曲線(xiàn)xlim(0,τ);當(dāng)α增加時(shí),四次C-Bézier曲線(xiàn)逐漸靠向相應(yīng)的α=2π時(shí)的C曲線(xiàn)x(2π,τ),(0<τ≤1)。所以,參數(shù)α對(duì)整條曲線(xiàn)段的調(diào)節(jié)范圍便是xlim(0,τ)和x(2π,τ)之間的區(qū)域。
在實(shí)際的工程曲線(xiàn)設(shè)計(jì)中,經(jīng)常需要求一條曲線(xiàn)經(jīng)過(guò)某給定的點(diǎn)。設(shè)S為調(diào)節(jié)范圍內(nèi)的任一點(diǎn),根據(jù)上面對(duì)α作用的分析,只要S位于xlim(0,τ)和x(2π,τ)之間的區(qū)域,就可以通過(guò)選擇合適的α使得四次C-Bézier曲線(xiàn)通過(guò)點(diǎn)S。
以下可分兩步完成,具體做法如下:
(1)求τ。可采用二分法通過(guò)逐步求精反求τ。xlim(0,τ)和x(2π,τ)之間的直線(xiàn)段表示如下:
P1(k,τ)=kx(2π,τ)+(1-k)xlim(0,τ),0≤k≤1
顯然希望找到τ0使得S在P1(k,τ0)上,具體算法為:
步驟1 取初值a=0,b=1;
步驟2 令τ0
步驟3 若S在P1(k,τ0)上,輸出τ0,否則轉(zhuǎn)步驟4;
步驟4 若S在P1(k,τ0)的左側(cè),則令b=τ0,若S在P1(k,τ0)的右側(cè),則a=τ0,轉(zhuǎn)步驟2。
通過(guò)此算法便可以求出τ0使得s(a,τ0)過(guò)已知點(diǎn)S。
(2)求α。由第(1)步求出的τ0可計(jì)算d1=d(S,x(2π,τ0))和d2=d(S,xlim(0,τ0)),因此由式(4)可得:
如果此時(shí)得到的α不滿(mǎn)足精度要求,還可以利用二分法,進(jìn)一步提高精度直至滿(mǎn)足要求。具體步驟為:
步驟1 將α和τ0帶入四次C-Bézier曲線(xiàn)的方程得到點(diǎn)S′;
步驟2 若S′與S的近似精度滿(mǎn)足要求,則輸出S′,否則步驟3;
步驟3 若S′比S的更靠近xlim(0,τ),則令反之令a=,轉(zhuǎn)步驟1。
假設(shè)S為式(2)所定義的一條四次C-Bézier曲線(xiàn)Bα(t)上的某一點(diǎn),其對(duì)應(yīng)的變量t值為ts,要使S點(diǎn)移動(dòng)到給定的T點(diǎn),可通過(guò)調(diào)整控制頂點(diǎn)的位置來(lái)實(shí)現(xiàn)。不妨假設(shè)曲線(xiàn)各控制頂點(diǎn)Pi的位移矢量分別為δi(i=0,1,2,3,4),則曲線(xiàn)上每點(diǎn)的位移量可表示為:
式中,0≤t≤1。
實(shí)際工程應(yīng)用中常使用以下兩種方法:
(1)保持首末兩點(diǎn)的位置不變,采用約束優(yōu)化方法使整條曲線(xiàn)的變形最小。
首先,建立如下約束條件:
其目標(biāo)函數(shù)為:
其次,為了使得上述目標(biāo)函數(shù)取最小,由拉格朗日乘數(shù)法可以定義拉格朗日方程為:
式中,λ=[λx,λy,λz]為拉格朗日乘數(shù)向量。令
則可得如下方程組:
最后,解上述方程組式(7),便可求得中間3個(gè)控制頂點(diǎn)的位移為:
由此可見(jiàn),采用約束優(yōu)化的方法移動(dòng)中間3個(gè)控制頂點(diǎn),控制頂點(diǎn)的位移方向與曲線(xiàn)上給定點(diǎn)的移動(dòng)方向相同,其大小與相應(yīng)的四次C-Bézier基函數(shù)成正比。
(2)保持首末點(diǎn)的位置和切矢方向不變。為了保證四次C-Bézier曲線(xiàn)段之間的G1連續(xù),每段曲線(xiàn)在形狀修改時(shí),首末點(diǎn)的位置和切矢方向都應(yīng)保持不變,再使中間點(diǎn)P2位置不變,另外兩點(diǎn)P1、P3的位移δ1、δ2滿(mǎn)足:
式中,前兩個(gè)條件保證了調(diào)整控制頂點(diǎn)前后曲線(xiàn)的首末點(diǎn)的切矢方向不變。
上述方程組的幾何意義是將Δα在兩個(gè)方向(P1-P0)和(P4-P3)上分解成Δα1和Δα2,那么
式中,δ1、δ2分別為P1、P3的位移矢量。
圖2給出了一個(gè)通過(guò)移動(dòng)曲線(xiàn)控制頂點(diǎn)來(lái)修改四次C-Bézier曲線(xiàn)形狀的實(shí)例。圖2中,曲線(xiàn)的形狀參數(shù)α=2π,而圖2(a)、圖2(b)和圖2(c)中分別移動(dòng)的控制頂點(diǎn)個(gè)數(shù)分別為5個(gè)、3個(gè)和2個(gè)。
圖3給出了在保持端點(diǎn)性質(zhì)條件下的四次C-Bézier曲線(xiàn)形狀修改的實(shí)例。圖3(a)保持了首末端點(diǎn)位置不變,而圖3(b)保持了首末點(diǎn)位置和切矢都不變。
圖2 移動(dòng)控制頂點(diǎn)改變四次C-Bézier曲線(xiàn)形狀幾何造型
圖3 調(diào)節(jié)控制頂點(diǎn)來(lái)修改四次C-Bézier曲線(xiàn)的形狀
基于四次C-Bézier曲線(xiàn)的幾何模型,分別通過(guò)修改曲線(xiàn)的控制頂點(diǎn)和形狀參數(shù),提出了兩種調(diào)整四次C-Bézier曲線(xiàn)形狀的有效新方法。本文方法不僅增加了四次C-Bézier曲線(xiàn)造型方法的靈活性,在一定程度上克服了工程中該曲線(xiàn)形狀難以調(diào)節(jié)和控制的問(wèn)題,而且還可以達(dá)到使曲線(xiàn)經(jīng)過(guò)給定目標(biāo)點(diǎn)或滿(mǎn)足一定條件的近似表示的目的,在CAD/CAM工程中的應(yīng)用也較為廣泛。
[1]Mainar E,Pena J M,Sánchez-Reyes J.Shape preserving alternatives to the rational Bézier model[J].Computer Aided Geometric Design,2001,18:37-60.
[2]宋麗平,秦新強(qiáng),祁偉麗.C-B樣條曲線(xiàn)的形狀修改[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(7):122-125.
[3]杭穎.C曲線(xiàn)及其形狀修改[D].合肥:合肥工業(yè)大學(xué),2009.
[4]樊建華,張紀(jì)文,鄔義杰.C-Bézier曲線(xiàn)的形狀修改[J].軟件學(xué)報(bào),2002,13(11):2194-2199.
[5]Zhang Jiwen.C-Curves:an extension of cubic curves[J].Computer Aided Geometric Design,1996,13(3):199-217.
[6]Zhang Jiwen.C-Bézier curves and surfaces[J].Graphical Models and Image Processing,1999,61(1):2-15.
[7]Hoffmann M,Wang Guozhao.Paths of C-Bézier and C-B-splines curves[J].Computer Aided Geometric Design,2006,23:463-475.
[8]陳秦玉,汪國(guó)昭.圓弧的C-Bézier曲線(xiàn)表示[J].軟件學(xué)報(bào),2002,13(11):2154-2161.
[9]陳秦玉,楊勛年,汪國(guó)昭.四次C-曲線(xiàn)的性質(zhì)及其應(yīng)用[J].高校應(yīng)用數(shù)學(xué)學(xué)報(bào):A輯,2003,18(1):45-50.