青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2123|回复: 0

NURBS 基本規則

[复制链接]
发表于 2009-8-12 18:58 | 显示全部楼层 |阅读模式
NURBS 基本規則( P) L% L1 U* p# `! s
NURBS是Non-Uniform Rational B-Splines(非均勻有理貝式雲型線也有翻成"那不勒斯")的縮寫。NURBS可以表現出3-D的幾何物體。6 S$ @4 g. O9 r- n: i
NURBS之所以能夠成為主要的電腦製作模形方法,有五個重要原因:  d" K$ J2 M. j& C  @  l
1 J# n. e" T1 B# T; L( [
有許多大型的知名企業,都使用NURBS作為主要的幾何模型交換方式。這代表了它們的客戶,都可以使用這種方式來轉換他們的幾何模型,於各種不同的建構模型軟件,算圖軟件,動畫軟件和工程分析軟件之間。它們可以使用這樣的方式存儲幾何模型資料,而且從現在起至少二十年內都可用。4 [# U. H. I' S  M  b; @: P: Z) @
NURBS擁有精確性和眾所周知的定義。在各個大專院校裡,無論在數學,電腦科學領域裡,NURBS幾何學都是必修的學問,是很重要的數學學科。這代表了大部分的電腦軟件業者,工程小組,工業設計公司和動畫公司;在需要撰寫自行研法的軟件時,都可以找到適當的程序設計師,來撰寫使用以NURBS為主要幾何架構的軟件。0 n% G5 B$ A0 P% O6 y
NURBS可以很精確的描繪出大部分的幾何模型,如:線段,圓,橢圓,球體,環形和像車體和人體的複雜自由曲面模形。9 z) v2 B8 K. w* w9 {
在描繪幾何模型時,以NURBS方式所描繪出的幾何信息比其它的描繪方式,文件要小許多。
  d! j3 ?6 v  w4 K. L關於NURBS曲線的細節,以及為何是電腦繪圖工具中最有效和準確性最高的原因,如下所列:
$ i5 r% i" @  `" j% w6 i1 D# A6 `* I# j; v3 d3 L5 T; _
何謂NURBS幾何學
% V: F2 p7 ^" _  o這個問題有很多種回答的方式。如果你對於閱讀數學方程式不感吃力的話,那你在RHINO的網站中相關連接可得到更多詳細資料。( @6 U4 d; ]0 b% ?( L

$ F' A; g" A. k% ?3 ]  w2 iRHINO使用NURBS來呈現曲線和曲面。NURBS曲線和曲面的行為模式是很相近的,而且有很多共同的專有名稱。曲線是較容易描述,理解的,我們將會詳細說明。RHINO的曲面工具很類似我們接下來所提及的曲線工具:1 @, b% G+ |+ G

4 h1 a* n' v& n一條NURBS曲線中有四個重要的定義項目:degree值,Control points控制點,knots節點和evaluation rule評定的規則。
  ]/ l$ f: P# w/ p) P- z" v0 s6 W% g( ?$ w0 }. f/ u
degree 值6 k, u; p4 {+ V5 k4 B5 z
degree的值是一個正整數。
. F; v* f% l9 v這個值通常為1,2,3或5。RHINO的線段和復合線段的degree的值為1。圓degree的值為2,而大部分RHINO的自由曲線的degree的值為3或5。RHINO所使用的NURBS曲線的degree的值可以設置從1到32。而通常我們把這些degree的值,稱之為Linear,Quadratic, Cubic, Quintic。 Linear代表著degree的值為1,Quadratic代表著degree的值為2, Cubic代表著degree的值為3 ,Quintic代表著degree的值為5。
8 e6 ^! A9 N! s  E( g- N: X+ u6 A/ A' r* j5 F& N8 R4 n  w
你可以參閱參考文獻裡關於NURBS曲線的order部分。NURBS曲線的order是個正整數,且等於degree+1。所以degree的
4 e7 C$ ~, G: @4 e# d( E0 G
$ v7 k6 V/ m: o! L! A. \值等於order –1。
. u# ~, h8 H" Q在改變NURBS曲線的degree的值的過程中,你有可能只增加degree的值而不影響到NURBS曲線的形狀。但是,你無法在減小degree的值的過程中不影響到NURBS曲線的形狀。RHINO所提供的工具能讓你自由地設定NURBS曲線的degree的值,從1到32。! U8 ?  {0 K) X' v6 s+ O; i
, e* E# ?5 j% e4 j% v$ ?2 s
Control points 控制點. J3 E( E" H3 S
Control points最少是degree+1個點。: j' O* l! v9 B* Z3 T
移動控制點,是改變NURBS曲線最簡單的方法。RHINO提供了很多方法來移動控制點。如果需要有較大彈性的自由曲面,你可以只使用鼠標來快速的移動和改變控制點,以繪製你的模型。而相對於準確性要求較高的曲線,RHINO則提供了其它精確性高的工具,以供使用。  ]+ [( J: a" T$ d8 S8 ]0 I4 V
Control points有一個相關的值---Weight。除了少數例子外,weight的值通常是正數。Control points是一串至少是degree+1個點,此曲線狀況稱之為non-rational;而如果weight的值並不完全相同時,此曲線狀況稱之為rational。& x3 \* u* _6 P5 Q
$ \3 G& E' v" B% U! O
NURBS曲線中的R為rational的縮寫。但這只是代表這條曲線有可能是rational。在範例裡,有大部分的NURBS曲線都是non-rational。只有一些NURBS曲線是rational,如:圓,橢圓等明顯的案例。RHINO提供一些工具來檢測和更改Control points的weight值。+ f% b! a. s" R; S, D6 e; C- j9 `) J
7 l, w6 `0 H/ d9 ~7 f5 y2 g  I
knots節點; p" e* {% Q* L. `0 R. u$ Y* }7 D1 C
knots節點是一串degree+N-1的數字,其中N為Control points的數字編號。有時我稱這串數字為knot vector。在這裡的vector並不是指3-D向量或方向性。8 q. Q  x, ^2 I
這串節點數字必須符合一些技術上的條件。這裡列出了幾項符合knot技術上所需要的條件值。基本的條件為:這連串的數字必須相同,或順序越後的數字越大,而且如果數字重複了,重複的次數不可以超過degree的值。例如一degree的值為3的NURBS曲線,其Control points的數量為11,而這串數字為0,0,0,1,2,2,2,3,7,7,9,9,9,符合knot數字串的要求。但假如knot數字值為0,0,0,1,2,2,2,2,7,7,9,9,9,這就不符合技術上所需要的條件值了。因為有4 個2,已超出了degree的值3的數量。
( G" f; v& \, y9 s3 {( b2 v8 _# t; Q4 I( ^- H/ v; q7 t
相同的knot數字值的數量,我們稱之為multiplicity.在上一個範例中,符合了knot技術上所需要的條件值,其knot值為0的有multiplicity 3,其knot值為1的有multiplicity 1,其knot值為2的有multiplicity 3,其knot值為7的有multiplicity 2,其knot值為9的有multiplicity 3。當knot的multiplicity值與其degree的值一樣時,我們將之稱為Full – multiplicity。在上一個範例中,knot的值為0,2,9,都是Full – multiplicity。當knot的multiplicity值為1時,我們將之稱為Simple – multiplicity。在上一個範例中,knot的值為1,3,都是Simple – multiplicity。4 \: Y7 J4 y; J6 q- T, i+ G$ {5 F
假如一曲線其knot的值開始於Full – multiplicity,然後接著Simple – multiplicity,結尾又是Full –, R7 N' c$ z+ f& h' [  u
multiplicity,而且其值之間的間隔相同,那這個knot稱之為uniform。例如一NURBS曲線,其degree的值為3, Control points的數量為7,knot的值為0,0,0,1,2,3,4,4,4,那此曲線就可稱之為uniform曲線。而假如knot的值為0,0,0,1,2,5,6,6,6,那此曲線就不是uniform曲線,我們稱之為non-uniform。NURBS裡的NU字母就是non-uniform的縮寫。表示knots節點在NURBS曲線中是允許non-uniform的情形。7 V/ ?4 p- z: {
9 o4 ~7 R, T: s* A% y2 Y
相同的knot數字值的數量,如果集中在值的中央部位,那這一NURBS曲線是較不圓滑的。例如有一曲線其knot值的中央有一Full – multiplicity,那就是表示此NURBS曲線會被彎成一銳角。因此,有些人會想要以增加或減少knots的數量,然後調整Control points使得曲線變得更加平順或更銳利。RHINO提供了工具讓你自由的增加或減少knots的數量。之前有提到過knots的值為degree+N-1,其N為Control points的值。所以當你增加knots的數量,同時也增加了Control points的數量;減少knots的數量,同時也減少了Control points的數量。knots的數量可以被增加,而不會影響到NURBS曲線的外形。而在一般情況下,減少數量會影響到NURBS曲線的外形。RHINO提供了一個減少knots的進階工具,當你刪除Control points時,它會自動調整knots的位置到最適當的位置。0 |5 }8 s+ q0 P6 B. Y
$ g. ?5 h/ W, @, t  I1 l% b5 F; h# v
Knots和control points, r* e" O8 V/ {' ?- ?# L' T
一般人常會誤解,在NURBS曲線裡的一個Control points會對應一個knot。而這種情況通常只會發生在degree的值為1的NURBS曲線上(通常是polylines)。在degree的值較高的NURBS曲線上,是由degree+1個Control points群組對應2倍degree值的knots群組。例如:假設我們有一個degree值為3的NURBS曲線,其Control points為7和knots為0,0,0,1,2,5,8,8,8。這時,前四個Control points和前六個knots為一組。而第二到第五個Control points和knots 0,0,1,2,5,8,為一組。而第三到第六個Control points和knots 0,1,2,5,8,8為一組。最後四個Control points和最後六個knots為一組。) U% Y4 a, V; p
) O& k1 A3 z) e) J3 l; @+ d+ F
現在還有些軟件使用舊版本的NURBS轉換法。舊版本的NURBS轉換法在計算knots值時,須在總額為degree+N+1 knots再額外多加兩個knots值。當RHINO在輸入或輸出NURBS幾何資料到這些軟件時,會自動地增加或減少兩個多餘的knots值以符合其正確性。# h- a$ p' r6 u, n1 T, M6 S, C0 h

- [. S0 @) `# R( e2 G評定的規則
. H1 [. h( }! `1 U5 v: zEvaluation rule評定的規則,是使用一個數學公式,得到一個數值用來定義到一點上。6 ]/ l$ j# m# K. C, ~: M
這是一個包含degree, Control points,knots和B-spline函數的數學方程式。NURBS曲線中的BS就是指B-spline。評定的規則從一個稱之為parameter的數字開始。你可以將評定的規則想像成一個神奇的箱子,而這個箱子每吃掉一個parameter值,就會運算出一個點的資料。而degree, Control points,和knots則決定了這個箱子如何運做的方法。
& W4 R, s! |0 o5 {" z. c9 V- ]( ?! R
NURBS的評定工具
$ U, G) D" ?) k# J3 q
/ `- |* H) O/ r8 x3 }RHINO 提供評定工具,你可以選取一條NURBS曲線,鍵入parameter的值,從而產生其相對應點。觀念上,knots的值決定了B-spline的基本函數。而B-spline的函數在parameter中決定了如何平均Control points和weights來產生點。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-11-18 06:35 , Processed in 0.050458 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表