王成偉 張卷美
1. 北京服裝學(xué)院,北京市 100029;
2. 北京電子科技學(xué)院,北京市 100070
與給定多邊形相切的分段光滑曲線有著廣泛地應(yīng)用背景[1-2],有很多學(xué)者對給定多邊形相切的樣條曲線進(jìn)行了深入的研究[3-9]。 陳素根等[10]在三角函數(shù)空間{1,sint,cost,sin2t,cos2t}中構(gòu)造出一類三角B 樣條基函數(shù),基函數(shù)中含有一個形狀參數(shù),并由此定義了帶有形狀參數(shù)的三角B 樣條曲線。 由于此三角B 樣條曲線不與控制多邊形相切,本文的目的重新構(gòu)造三角B樣條曲線的控制頂點(diǎn),使其與給定的多邊形相切且具有保形性。 具體做法如下:在原來的兩個控制頂點(diǎn)之間增加一個新的控制點(diǎn),切點(diǎn)的位置根據(jù)需要可以調(diào)整,還可以通過調(diào)整三角B 樣條曲線中的形狀參數(shù),來調(diào)整曲線離多邊形的遠(yuǎn)近,曲線可以是閉的也可以是開的,這使曲線設(shè)計(jì)的靈活性大大加強(qiáng)。 算法實(shí)例表明,該算法不但計(jì)算簡單,而且是實(shí)用有效的。
設(shè)bj(j =0,1,…,m) 是m +1(m >3) 個控制點(diǎn),由此形成m - 2 個曲線段連成的一條三角B 樣條曲線,而第i(1 ≤i ≤m - 2) 個曲線段定義為
其中帶形狀參數(shù)α 的三角B 樣條基函數(shù)為:
這里α 為形狀參數(shù),0 ≤α ≤1。
從三角B 樣條曲線的定義(1)式和(2)式中,我們可以得到如下性質(zhì):
(1)權(quán)性:X0(t) +X1(t) +X2(t) +X3(t)≡1。
(2)非負(fù)性:當(dāng)0 ≤α ≤1 時,對于t ∈[0,1] 有Xi(t) ≥0,i =0,1,2,3。
(3)對稱性:Xi(t)=X3-i(1 - t),i =0,1,2,3。
(4)保凸性:由性質(zhì)(1)和(2)可知,當(dāng)0 ≤α ≤1,0 ≤t ≤1 時,由控制頂點(diǎn)bi-1,bi,bi+1,bi+2來定義的三角B 樣條曲線段Pi(t) 是包含在其控制多邊形之內(nèi)。
(5)曲線的端點(diǎn)性質(zhì):
當(dāng)α 增大,曲線離控制多邊形就越近;當(dāng)α減小,曲線離控制多邊形就越遠(yuǎn)。 如圖1 所示,三角B 樣條曲線段Pi(t) 從下到上,α 分別取0,0.5,1。
定義 給定的一多邊形 <V0,V1,…,Vn>,若矢量Vi-2Vi-1×Vi-1Vi與矢量Vi-1Vi×ViVi+1方向相反,則頂點(diǎn)Vi稱為該多邊形的一個轉(zhuǎn)折點(diǎn)。
若多邊形的任一個頂點(diǎn)都不是轉(zhuǎn)折點(diǎn),則稱多邊形是凸的;否則稱多邊形是非凸的。
若多邊形是凸的,則由它產(chǎn)生的曲線也是凸的;若多邊形是非凸的,Vi是多邊形的一個轉(zhuǎn)折點(diǎn),則由多邊形產(chǎn)生的曲線在多邊形的Vi-1Vi邊上產(chǎn)生一個拐點(diǎn)。 這時就稱曲線對多邊形是保形的。
定理1 設(shè)<V0,V1,…,Vn,V0>是閉的多邊形,定義三角B 樣條曲線的控制點(diǎn)如下:
式中λi(0 ≤λi≤1)。
由控制點(diǎn)b2,b3,…,b2n+5,b2n+6形成的三角B 樣條曲線為
它是與給定多邊形<V0,V1,…,Vn,V0>每邊相切的C2連續(xù)的閉曲線且曲線對該多邊形具有保形性。
事實(shí)上
令
有
特別當(dāng)λl=1/2 時,有ωl=1/2 代入(6)式得
即切點(diǎn)落在第l 條邊的Pi(t) 中點(diǎn)上。
同理可證Pi(t)(i =1,3,5,…,2n +3) 的終點(diǎn)落在給定多邊形的第l =(i +1)/2 條邊<V0,V1,…,Vn,V0>上,且與該邊相切。
由(3)式及(4)式可知,曲線段P2n+3(t)與P0(t)是<V0,V1,…,Vn,V0>連續(xù)的,故整條三角B 樣條曲線(5)式是與給定的多邊形<V0,V1,…,Vn,V0>每邊相切的<V0,V1,…,Vn,V0>連續(xù)的閉曲線。
根據(jù)三角B 樣條曲線段的保凸性,三角B樣條曲線(5)式的拐點(diǎn)個數(shù)與它的多邊形<V0,V1,…,Vn,V0>的轉(zhuǎn)折點(diǎn)的個數(shù)相同,且拐點(diǎn)必落在切點(diǎn)上。 這說明了曲線(5)式對該多邊形具有保形性。
綜上可知,三角B 樣條曲線(5)式是與給定的多邊形每邊相切的<V0,V1,…,Vn>連續(xù)的閉曲線,并且曲線對該多邊形具有保形性。
仿照定理1 的證明,對于三角B 樣條開曲線,有如下定理:
定理2 設(shè)<V0,V1,…,Vn>是開的多邊形,定義三角B 樣條曲線的控制點(diǎn)
式中λi(0 ≤λi≤1)。
由控制點(diǎn)b2,b3,…,b2n,b2n+1形成的三角B樣條曲線
它是與給定多邊形<V0,V1,…,Vn>每邊相切的V0=(10,20) 連續(xù)的開曲線且曲線對該多邊形具有保形性。
下面舉例說明用本文的方法構(gòu)造的三角B樣條閉曲線。
例1. 給定平面上一非凸的六邊形,其頂點(diǎn)分別為V0=(10,20),V1=(20,50),V2=(50,60),V3=(35,40),V4=(60,20),V5=(30,10)。 用本文的算法,對參數(shù)(λi,α) 分別取(0.3,1)、(0.4,0.7) 和(0.5,0.5) 繪制了與六邊形每邊相切三角B 樣條閉曲線的三個圖形(如圖2 所示)。 由圖2 可知,λi的取值不同,但α 取值越大曲線與給定的多邊形逼近程度越高。
例2. 在服裝紙樣曲線造型中,根據(jù)尺寸大小確定控制多邊形,使用本文的與給定多邊形斜切的三角B 樣條曲線方法,通過對參數(shù)(λi,α)進(jìn)行調(diào)整,能滿足設(shè)計(jì)的要求。 圖3 為控制參數(shù)(λi,α) 分別取(0.4,0.5) 和(0.4,0.9) 的兩幅袖山弧線的設(shè)計(jì)圖。 從圖3 可以看出,固定λi的值不變,α 越大曲線越靠近給定的多邊形。
圖示4 是衣身基本紙樣兩幅設(shè)計(jì)圖, λi分別取0,0.99, 0.3, 0,1;形狀參數(shù)α 分別取0.6和0.9。 從圖4 可以看出,每段λi的取值相同,α 取值越大,曲線與多邊形逼近程度越好,曲線越光順。
本文構(gòu)造的三角B 樣條曲線,不僅與給定多邊形<V0,V1,…,Vn,V0>每邊相切,而且對給定的多邊形具有保形性,避免了曲線產(chǎn)生多余的拐點(diǎn)。
曲線是C2連續(xù)的;由(6)式可知,改變λi或α 的值,可以改變曲線與給定多邊形的相切的位置;固定λi的值不變,調(diào)整形狀參數(shù)α,α 越大曲線越靠近給定的多邊形;反之,曲線就遠(yuǎn)離給定的多邊形,這樣就可以調(diào)整曲線與給定的多邊形的逼近程度,更好的滿足設(shè)計(jì)要求。