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