朱 平 , 汪國(guó)昭
(1. 浙江大學(xué)數(shù)學(xué)系計(jì)算機(jī)圖像圖形研究所CAD&CG國(guó)家重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310027; 2. 東南大學(xué)數(shù)學(xué)系科學(xué)計(jì)算實(shí)驗(yàn)室,江蘇 南京 211189)
B-樣條具有表示設(shè)計(jì)自由型曲線曲面的強(qiáng)大功能,是幾何形狀描述的主流方法之一。升階是B-樣條曲線經(jīng)常遇到的問(wèn)題。通過(guò)升階,可以增加B-樣條曲線的自由度。同時(shí)升階算法也在B-樣條曲線合并、構(gòu)造張量積曲面有著廣泛的應(yīng)用。尤其在表示和設(shè)計(jì)組合曲線,B-樣條曲線的升階是必不可少的手段之一。兩條或若干條不同次數(shù)的B-樣條曲線要順序連續(xù)成為一條組合B-樣條曲線,用一個(gè)統(tǒng)一的方程表示,必須對(duì)其升階,統(tǒng)一其次數(shù)。有鑒于此,很多國(guó)內(nèi)外學(xué)者都提出了B-樣條曲線的快速升階算法[1-5]。在CAGD 中,許多曲線曲面生成都可以解釋為割角的過(guò)程,這樣的好處是提供了一個(gè)很簡(jiǎn)便的幾何構(gòu)造法[6-7]。但是,除文獻(xiàn)[8]外,所有升階算法都不能解釋為幾何割角的過(guò)程。文獻(xiàn)[8]通過(guò)提出雙次數(shù)B-樣條解決了這個(gè)問(wèn)題,使得B-樣條的升階有了幾何意義,其方法就是不斷嵌入節(jié)點(diǎn),生成雙次數(shù)B-樣條曲線。那么通過(guò)這種方式升階,其割角的控制多邊形是否像Bézier 曲線[9]那樣收斂到原始的B-樣條曲線呢?本文通過(guò)證明給出了答案。根據(jù)本文的結(jié)論,B-樣條曲線就可以像Bézier 曲線那樣割角生成。
B-樣條曲線的定義如下[10]:

其節(jié)點(diǎn)向量為

{ Pi}0是控制頂點(diǎn),{ Ni,k(t )}是定義在T 上k 次 B-樣條基函數(shù)。

定義在jT 上的雙次數(shù)B-樣條定義如下[8]

這里 lj= z0+ z1+ … + zj+j 。


由雙次數(shù)B-樣條的變換公式[8],很容易將B-樣條升階解釋為一個(gè)幾何割角的過(guò)程。下面,通過(guò)定理說(shuō)明通過(guò)這樣的割角形成的控制多邊形序列最終收斂到初始的B-樣條曲線。
根據(jù)文獻(xiàn)[8],將k 次B-樣條曲線 ( )tP 升階至k+ 1次是通過(guò)依次嵌入節(jié)點(diǎn)定義的雙次數(shù)B-樣條基函數(shù)變換實(shí)現(xiàn)的。同時(shí),這個(gè)變換過(guò)程也是對(duì)控制多邊形割角的過(guò)程。下面證明對(duì)B-樣條初始曲線不斷地升階,其控制多邊形最終將收斂到初始B-樣條曲線。
為了敘述方便,引入一些記號(hào):

(2) Ni,K( t )是升階后定義在 T ′上的K 次B-樣條基函數(shù)。 T ′是升階后的節(jié)點(diǎn)向量

(3) ( ti, ti+1)為節(jié)點(diǎn)區(qū)間,若 ti< ti+1,則 稱為非零節(jié)點(diǎn)區(qū)間。



看出 p′ (t )是完全定義在T 上。這樣,令Ni,k(t ) = p′ ( t)以及基函數(shù)的線性無(wú)關(guān)性,得到

根據(jù) Ni,k( t ) = p ′( t),知道 p( t ) = 0(t <)。則再由基函數(shù)的局部性和線性無(wú)關(guān)性, 得到p?1= …= pi?1=0。那么推得 取t=+∞,可知定理成立。


證明設(shè)B-樣條曲線





如果對(duì) T ′的每個(gè) ti(i = 0,… , n)分別嵌入一次節(jié)點(diǎn),相當(dāng)于升階一次得到新的控制多邊形為 Γ3, 容易知道


以下為對(duì)B 樣條控制多邊形進(jìn)行升階各角得到的B 樣條曲線(見(jiàn)圖1~圖4)。

圖1 初始控制多邊形及B-樣條曲線

圖2 升階一次以后的控制多邊形

圖3 升階兩次以后的控制多邊形

圖4 升階五次以后的控制多邊形
文獻(xiàn)[8]通過(guò)插入節(jié)點(diǎn)將B-樣條曲線的升階解釋為割角的過(guò)程,使升階有了幾何意義。本文也可以看成是升階收斂的又一種證明方法,是對(duì)文獻(xiàn)[8]的一個(gè)補(bǔ)充,通過(guò)證明得出了升階最后逼近收斂的結(jié)論,這樣就可以像Bézier 曲線那樣對(duì)控制多邊形割角生成B-樣條曲線。
[1] HUANG Qixing, HU Shimin, Martin R. Fast degree elevation and knot insertion for B-spline curves [J]. Computer Aided Geometric Design, 2005, 22(2): 183-197.
[2] 孫景楠, 王仁宏. B-樣條曲線升階算法中問(wèn)題及其解決辦法[J]. 大連理工大學(xué)學(xué)報(bào), 2003, 43(4): 397-398.
[3] 于丕強(qiáng), 施錫泉. B-樣條曲線升階的新研究[J]. 應(yīng)用數(shù)學(xué), 2003, 16(1): 29-33.
[4] Liu W. A simple, efficient degree raising algorithm for B-spline curve [J]. Computer Aided Geometric Design 1997, 14(7): 693-698.
[5] Prautzsch H, Piper B. A fast algorithm to raising the degree of B-spline curves [J]. Computer Aided Geometric Design, 1991, 8(4): 253-266.
[6] de Boor C. Cutting corners always works [J]. Computer Aided Geometric Design, 1987, 4(2): 125-131.
[7] Paluszny M, Prautzsch H, Sch?fer M. A geometric look at corner cutting [J]. Computer Aided Geometric Design, 1997, 14(5): 421-447.
[8] WANG Guozhao, DENG Chongyang. On the degree elevation of B-spline curves and corner cutting [J]. Computer Aided Geometric Design, 2007, 24(2): 90-98.
[9] 王國(guó)瑾, 汪國(guó)昭, 鄭建民. 計(jì)算機(jī)輔助幾何設(shè)計(jì)[M]. 北京: 高教出版社; 海德堡: 施普林格出版社, 2001. 8-9, 28-29.
[10] Piegl L, Tiller W. The NURBS book (2nd ed.)[M]. Berlin: Spring, 1997. 81-82.