NURBS(Non Uniform Rational B-spline)曲線通常稱(chēng)為非均勻有理B樣條曲線,其數(shù)學(xué)定義如下:

基函數(shù)由遞推公式定義:

非均勻:指節(jié)點(diǎn)向量的值與間距可以為任意值。這樣我們可以在不同區(qū)間上得到不同的混合函數(shù)形狀,為自由控制曲線形狀提供了更大自由。均勻與非均勻的主要區(qū)別在于節(jié)點(diǎn)向量的值。如果適當(dāng)設(shè)定節(jié)點(diǎn)向量,可以生成一種開(kāi)放均勻樣條,它是均勻與非均勻的交叉部分。開(kāi)放樣條在兩端的節(jié)點(diǎn)值會(huì)重復(fù)d次,其節(jié)點(diǎn)間距是均勻的。例如:
{0,0,1,2,3,3},(d=2,n=3)
{0,0,0,1,2,2,2},(d=4,n=4)
開(kāi)放均勻B樣條與貝澤爾樣條性質(zhì)非常類(lèi)似,如果d=n+1(即多項(xiàng)式次數(shù)為n),那么開(kāi)放B樣條就變成了貝澤爾樣條,所有節(jié)點(diǎn)值為0或1。如四個(gè)控制點(diǎn)的三次開(kāi)放B樣條,節(jié)點(diǎn)向量為:{0,0,0,0,1,1,1}。
有理B樣條:有理函數(shù)是兩個(gè)多項(xiàng)式之比,有理樣條(rationalspline)是兩個(gè)樣條函數(shù)之比,有理B樣條用向量描述。
URBS曲線由以下三個(gè)參數(shù)定義:
(1) 控制點(diǎn)
:確定曲線的位置,通常不在曲線上,形成控制多邊形。(見(jiàn)圖1,圖中
)
圖1 控制點(diǎn)移動(dòng)對(duì)曲線的影響
(2) 權(quán)因子
:確定控制點(diǎn)的權(quán)值,它相當(dāng)于控制點(diǎn)的“引力”,其值越大曲線就越接近控制點(diǎn)(見(jiàn)圖2,Bi為控制點(diǎn))。

圖2 曲線隨權(quán)因子變化
(3) 節(jié)點(diǎn)矢量K:NURBS曲線隨著參數(shù)K的變化而變化,與控制頂點(diǎn)相對(duì)應(yīng)的參數(shù)化點(diǎn)K稱(chēng)為節(jié)點(diǎn),節(jié)點(diǎn)的集合Ki:[K0,K1…,Kn…,Kn+m+1]稱(chēng)為節(jié)點(diǎn)矢量。
節(jié)點(diǎn):在曲線上任意一點(diǎn)有多于一個(gè)控制點(diǎn)產(chǎn)生影響(除了bezier的端點(diǎn)),節(jié)點(diǎn)就象一種邊界,在這個(gè)邊界上一個(gè)控制點(diǎn)失去影響作用,另一個(gè)控制點(diǎn)取得影響。
2、NURBS曲線怎樣通過(guò)首末節(jié)點(diǎn)
多重節(jié)點(diǎn)序列使得樣條曲線更靠近于重復(fù)節(jié)點(diǎn)位置。如果末端節(jié)點(diǎn)重復(fù)d+1次,則d階B-樣條必須插值*后一個(gè)控制點(diǎn)。因此,解決樣條曲線不能橫跨整個(gè)控制頂點(diǎn)序列的一個(gè)方法是,重復(fù)首尾兩個(gè)節(jié)點(diǎn),這樣得到的樣條曲線將插值首尾兩個(gè)控制點(diǎn)。
對(duì)于非周期的樣條,節(jié)點(diǎn)矢量為

即節(jié)點(diǎn)矢量?jī)啥烁饔衜+1個(gè)相同的節(jié)點(diǎn),以便曲線通過(guò)控制多邊形首、末端點(diǎn),并與首、末兩邊相切。
(參考系統(tǒng)編程篇§2.7程序示例)
3、NURBS曲線軌跡的矩陣計(jì)算法及矩陣表示
因NURBS樣條函數(shù)的節(jié)點(diǎn)參數(shù)沿參數(shù)軸的分布是不等距的,不同節(jié)點(diǎn)矢量形成的B樣條基函數(shù)各不相同,需要單獨(dú)計(jì)算,且算法中又增加了權(quán)因子,所以曲線軌跡點(diǎn)的計(jì)算較為復(fù)雜、費(fèi)時(shí),為了提高NURBS曲線插補(bǔ)的實(shí)時(shí)性,在實(shí)時(shí)插補(bǔ)前需進(jìn)行必要的預(yù)處理,其主要任務(wù)是確定NURBS曲線軌跡計(jì)算公式的有關(guān)系數(shù),以簡(jiǎn)化實(shí)時(shí)插補(bǔ)的計(jì)算量。
若曲線采用三次NURBS形式表示(三次與K次計(jì)算方法相同,表達(dá)式不同),即K=3,
,則第i段曲線可以寫(xiě)成下列矩陣形式:
整理可得:

由于控制點(diǎn)di及權(quán)因子Wi 均已知,而Mi僅與節(jié)點(diǎn)向量有關(guān),也是確定的,Ci與Mi、Wi、di有關(guān),即也是確定的,故式中各項(xiàng)系數(shù)均已知,且與插補(bǔ)點(diǎn)的參數(shù)無(wú)關(guān),可在插補(bǔ)前一次性求出,因式中i的取值為3到n,所以對(duì)整條NURBS曲線,可計(jì)算出的系數(shù)共有n-2組,在插補(bǔ)中根據(jù)插補(bǔ)點(diǎn)所在的位置動(dòng)態(tài)選用相應(yīng)的系數(shù)。
對(duì)于曲線上坐標(biāo)X、Y、Z分別有:

Nurbs曲線詳解