nurbs(non uniform rational b-spline)曲線通常稱為非均勻有理b樣條曲線,其數學定義如下:
基函式由遞推公式定義:
非均勻:指節點向量的值與間距可以為任意值。這樣我們可以在不同區間上得到不同的混合函式形狀,為自由控制曲線形狀提供了更大自由。均勻與非均勻的主要區別在於節點向量的值。如果適當設定節點向量,可以生成一種開放均勻樣條,它是均勻與非均勻的交叉部分。開放樣條在兩端的節點值會重複d次,其節點間距是均勻的。例如:
,(d=2,n=3)
,(d=4,n=4)
開放均勻b樣條與貝澤爾樣條性質非常類似,如果d=n+1(即多項式次數為n),那麼開放b樣條就變成了貝澤爾樣條,所有節點值為0或1。如四個控制點的三次開放b樣條,節點向量為:。
有理b樣條:有理函式是兩個多項式之比,有理樣條(rationalspline)是兩個樣條函式之比,有理b樣條用向量描述。
urbs曲線由以下三個引數定義:
(1) 控制點
圖1 控制點移動對曲線的影響
(2) 權因子
圖2 曲線隨權因子變化
(3) 節點向量k:nurbs曲線隨著引數k的變化而變化,與控制頂點相對應的引數化點k稱為節點,節點的集合ki:[k0,k1…,kn…,kn+m+1]稱為節點向量。
節點:在曲線上任意一點有多於乙個控制點產生影響(除了bezier的端點),節點就象一種邊界,在這個邊界上乙個控制點失去影響作用,另乙個控制點取得影響。
2、nurbs曲線怎樣通過首末節點
多重節點序列使得樣條曲線更靠近於重複節點位置。如果末端節點重複d+1次,則d階b-樣條必須插值最後乙個控制點。因此,解決樣條曲線不能橫跨整個控制頂點序列的乙個方法是,重複首尾兩個節點,這樣得到的樣條曲線將插值首尾兩個控制點。
對於非週期的樣條,節點向量為
即節點向量兩端各有m+1個相同的節點,以便曲線通過控制多邊形首、末端點,並與首、末兩邊相切。
(參考系統程式設計篇§2.7程式示例)
3、nurbs曲線軌跡的矩陣計算法及矩陣表示
因nurbs樣條函式的節點引數沿引數軸的分布是不等距的,不同節點向量形成的b樣條基函式各不相同,需要單獨計算,且演算法中又增加了權因子,所以曲線軌跡點的計算較為複雜、費時,為了提高nurbs曲線插補的實時性,在實時插補前需進行必要的預處理,其主要任務是確定nurbs曲線軌跡計算公式的有關係數,以簡化實時插補的計算量。
若曲線採用三次nurbs形式表示(三次與k次計算方法相同,表示式不同),即k=3,
整理可得:
由於控制點di及權因子wi 均已知,而mi僅與節點向量有關,也是確定的,ci與mi、wi、di有關,即也是確定的,故式中各項係數均已知,且與插補點的引數無關,可在插補前一次性求出,因式中i的取值為3到n,所以對整條nurbs曲線,可計算出的係數共有n-2組,在插補中根據插補點所在的位置動態選用相應的係數。
對於曲線上座標x、y、z分別有:
NURBS曲線繪製
工作需要,最近做非均勻b樣條曲線資料庫建立。為養成良好的工作學習習慣,特此作總結,並希望以後在計算機 學上能有更深的造詣,以激勵自己不斷進步。續前,前段時間終於把nurbs調通,甚是高興!nurbs樣條曲線,這期間經過幾次曲折。第一次是參考網上的資料做出了均勻b樣條曲線,後來拿到客戶那裡去,發現大致...
什麼是NURBS曲線
nurbs是non uniform rational b splines的縮寫,是非統一有理b樣條的意思。具體解釋是 non uniform 非統一 是指乙個控制頂點的影響力的範圍能夠改變。當建立乙個不規則曲面的時候這一點非常有用。同樣,統一的曲線和曲面在透視投影下也不是無變化的,對於互動的3d建模...
第十二講 繪製NURBS曲線和曲面
上一節講了一般的曲線與曲面的繪製,本節講nurbs曲線和曲面的繪製。例11 此例繪製兩個相同形狀的nurbs曲面,不同之處是乙個為線框式,乙個是由實多邊形組成。執行後可以看到其中的區別,如圖十三所示。include include glunurbsobj thenurb1 glunurbsobj t...