Bezier曲線與曲面(1)

導讀:
  3.2.1 Bezier曲線的定義和性質
  
  1.定義
  
  給定空間n+1個點的位置矢量Pi(i=0,1,2,…,n),則Bezier參數曲
  線上各點座標的插值公式是:
  
  
  
  
  其中,Pi構成該Bezier曲線的特徵多邊形,Bi,n(t)是n次Bernstein基
  函數:
  
  
  
  
  0° =1, 0!=1
  Bezier曲線實例如圖3.1.8所示。
  
  
  
  
  2.Betnstein基函數的性質
  
  (1)正性
  
  
  
  
  (2)端點性質
  
  
  
  
  (3)權性
  
  
  
  由二項式定理可知:
  
  (4)對稱性
  
  
  
  
  因爲
  
  (5)遞推性。
  
  
  
  
  即高一次的Bernstein基函數可由兩個低一次的Bernstein調和函數線性
  組合而成。
  因爲,
  
  (6)導函數
  
  
  
  
  (7)最大值。 在處達到最大值。
  
  (8)升階公式
  
  
  
  
  (9)積分
  
  
  
  
  3.Bezier曲線的性質
  
  (1)端點性質
  
  a. 曲線端點位置矢量
  
  由Bernstein基函數的端點性質可以推得,當t=0時,P(0)=P0 ;當t=1
  時,P(1)=Pn。由此可見,Bezier曲線的起點、終點與相應的特徵多邊形的
  起點、終點重合。
  
  b. 切矢量
  
  因爲,所以當t=0時,P’(0)=n(P1-
  P0),當t=1時,P’(1)=n(Pn-Pn-1),這說明Bezier曲線的起點和終點處的
  切線方向和特徵多邊形的第一條邊及最後一條邊的走向一致。
  
  c. 二階導矢
  
  
  
  
  當t=0時,
  當t=1時,
  
  上式表明:2階導矢只與相鄰的3個頂點有關,事實上,r階導矢只與
  (r+1)個相鄰點有關,與更遠點無關。
  
  將、及、代入曲率公式,可以
  得到Bezier曲線在端點的曲率分別爲:
  
  
  
  
  
  
  
  
  d. k階導函數的差分表示
  
  n次Bezier曲線的k階導數可用差分公式爲:
  
  
  
  
  其中高階向前差分矢量由低階向前差分矢量遞推地定義:
  
  
  
  例如:
  
  
  
  
  
  
  
  (2)對稱性。由控制頂點構造出的新Bezier
  曲線,與原Bezier曲線形狀相同,走向相反。因爲:
  
  
  
  這個性質說明Bezier曲線在起點處有什麼幾何性質,在終點處也有相同的
  性質。
  
  
  
  (3)凸包性
  
  由於,且,這一結果說明
  當t在[0,1]區間變化時,對某一個t值,P(t)是特徵多邊形各頂點的加權
  平均,權因子依次是。在幾何圖形上,意味着Bezier曲線P(t)在
  中各點是控制點Pi的凸線性組合,即曲線落在Pi構成的凸包之中,
  如圖3.1.9所示。
  
  
  
  
  (4)幾何不變性。這是指某些幾何特性不隨座標變換而變化的特性。
  Bezier曲線的位置與形狀與其特徵多邊形頂點的位置有關,
  它不依賴座標系的選擇,即有:
  (參變量u是t的置換)
  
  (5)變差縮減性。若Bezier曲線的特徵多邊形是一個平面圖
  形,則平面內任意直線與C(t)的交點個數不多於該直線與其特徵多邊形的
  交點個數,這一性質叫變差縮減性質。此性質反映了Bezier曲線比其特徵
  多邊形的波動還小,也就是說Bezier曲線比特徵多邊形的折線更光順。
  
  (6)仿射不變性。對於任意的仿射變換A:
  即在仿射變換下,的形式不
  變。
  
  3.2.2 Bezier曲線的遞推(de Casteljau)算法
  
  計算Bezier曲線上的點,可用Bezier曲線方程,但使用de Casteljau提
  出的遞推算法則要簡單的多。
  
  如圖3.1.10所示,設、、是一條拋物線上順序三個不同的點。
  過和點的兩切線交於點,在點的切線交和於和,
  則如下比例成立:
  
  
  
  
  這是所謂拋物線的三切線定理。
  
  
  
  
  當P0,P2固定,引入參數t,令上述比值爲t:(1-t),即有:
  
  
  
  
  t從0變到1,第一、二式就分別表示控制二邊形的第一、二條邊,它們
  是兩條一次Bezier曲線。將一、二式代入第三式得:
  
  
  
  
  當t從0變到1時,它表示了由三頂點P0、P1、P2三點定義的一條二次
  Bezier曲線。並且表明:這二次Bezier曲線P20可以定義爲分別由前兩個頂
  點(P0,P1)和後兩個頂點(P1,P2)決定的一次Bezier曲線的線性組合。
  依次類推,由四個控制點定義的三次Bezier曲線P30可被定義爲分別由(P0,
  P1,P2)和(P1,P2,P3)確定的二條二次Bezier曲線的線性組合,由(n+1)個
  控制點Pi(i=0, 1, ..., n)定義的n次Bezier曲線Pn0可被定義爲分別由前、
  後n個控制點定義的兩條(n-1)次Bezier曲線P0n-1與P1n-1的線性組合:
  
  
  
  
  由此得到Bezier曲線的遞推計算公式:
  
  
  
  
  這便是著名的de Casteljau算法。用這一遞推公式,在給定參數下,
  求Bezier曲線上一點P(t)非常有效。上式中:是定義Bezier曲線的
  控制點,即爲曲線上具有參數t的點。de Casteljau算法穩定可靠,
  直觀簡便,可以編出十分簡捷的程序,是計算Bezier曲線的基本算法和標準
  算法。
  
  當n=3時,de casteljau算法遞推出的Pki呈直角三角形,對應結果如
  圖3.1.11所示。從左向右遞推,最右邊點P30即爲曲線上的點。
  
  
  
  
  這一算法可用簡單的幾何作圖來實現。給定參數,就把定義域
  分成長度爲的兩段。依次對原始控制多邊形每一邊執行同樣的定比
  分割,所得分點就是第一級遞推生成的中間頂點,對這些
  中間頂點構成的控制多邊形再執行同樣的定比分割,得第二級中間頂點
  。重複進行下去,直到n級遞推得到一箇中間頂點即爲
  所求曲線上的點,如圖3.1.12所示。
  
  
  
  
  3.2.3 Bezier曲線的拼接
  
  幾何設計中,一條Bezier曲線往往難以描述複雜的曲線形狀。這是由
  於增加由於特徵多邊形的頂點數,會引起Bezier曲線次數的提高,而高次
  多項式又會帶來計算上的困難,實際使用中,一般不超過10次。所以有時
  採用分段設計,然後將各段曲線相互連接起來,並在接合處保持一定的連
  續條件。下面討論兩段Bezier曲線達到不同階幾何連續的條件。
  
  給定兩條Bezier曲線P(t)和Q(t),相應控制點爲Pi(i=0, 1, ..., n)
  和Qj(j=0,1,..., m),且令,如圖3.1.13所示,
  我們現在把兩條曲線連接起來。
  
  
  
  
  (1)要使它們達到G0連續的充要條件是:Pn= Q0;
  
  (2)要使它們達到G1連續的充要條件是:Pn-1,Pn=Q,Q1三點共線,
  即
  
  (3)要使它們達到G2連續的充要條件是:在G1連續的條件下,並滿足
  方程。
  
  我們將、和,、代入,
  並整理,可以得到:
  
  
  
  選擇和的值,可以利用該式確定曲線段的特徵多邊形頂點,而
  頂點、已被連續條件所確定。要達到連續的話,只剩下頂點可
  以自由選取。
  
  如果從上式的兩邊都減去,則等式右邊可以表示爲和
  的線性組合:
  
  
  
  
  這表明、、、和五點共面,事實上,在接合點兩
  條曲線段的曲率相等,主法線方向一致,我們還可以斷定:和位於
  直線的同一側。
  
  3.2.4 Bezier曲線的升階與降階
  
  1.Bezier曲線的升階
  
  所謂升階是指保持Bezier曲線的形狀與定向不變,增加定義它的控制
  頂點數,也即是提高該Bezier曲線的次數。增加了控制頂點數,不僅能增
  加了對曲線進行形狀控制的靈活性,還在構造麴面方面有着重要的應用。
  對於一些由曲線生成曲面的算法,要求那些曲線必須是同次的。應用升階
  的方法,我們可以把低於最高次數的的曲線提升到最高次數,而獲得同一
  的次數。
  
  曲線升階後,原控制頂點會發生變化。下面,我們來計算曲線提升一
  階後的新的控制頂點。
  
  設給定原始控制頂點,定義了一條n次Bezier曲線:
  
  
  
  
  增加一個頂點後,仍定義同一條曲線的新控制頂點爲,
  則有:
  
  
  
  
  對上式左邊乘以,得到:
  
  
  
  
  比較等式兩邊項的係數,得到:
  
  
  
  
  化簡即得:
  
  
  
  
  其中。
  
  此式說明:
  
  新的控制頂點是以參數值按分段線性插值從原始特徵多邊形得出的。
  
  升階後的新的特徵多邊形在原始特徵多邊形的凸包內。
  
  特徵多邊形更靠近曲線。
  
  三次Bezier曲線的升階實例如圖3.1.14所示。
  
  
  
  
  2.Bezier曲線的降階
  
  降階是升階的逆過程。給定一條由原始控制頂點定義
  的n次Bezier曲線,要求找到一條由新控制頂點定義的n-
  1次Bezier曲線來逼近原始曲線。
  
  假定是由升階得到,則由升階公式有:
  
  
  
  從這個方程可以導出兩個遞推公式:
  
  
  
  和
  
  其中第一個遞推公式在靠近處趨向生成較好的逼近,而第二個遞推
  公式在靠近處趨向生成較好的逼近。
  
  3.2.5 Bezier曲面
  
  基於Bezier曲線的討論,我們可以方便地可以給出Bezier曲面的定義
  和性質,Bezier曲線的一些算法也可以很容易擴展到Bezier曲面的情況。
  
  1.定義
  
  設爲個空間點列,則次張
  量積形式的Bezier曲面定義爲:
  
  
  
  
  其中,是Bernstein基函
  數。依次用線段連接點列中相鄰兩點所形成的空間
  網格,稱之爲特徵網格。Bezier曲面的矩陣表示式是:
  
  
  
  在一般實際應用中,不大於4。
  
  2.性質
  
  除變差減小性質外,Bezier曲線的其它性質可推廣到Bezier曲面:
  
  (1)Bezier曲面特徵網格的四個角點正好是Bezier曲面的四個角點,
  即,,,。
  
  (2)Bezier曲面特徵網格最外一圈頂點定義Bezier曲面的四條邊界;
  Bezier曲面邊界的跨界切矢只與定義該邊界的頂點及相鄰一排頂點有關,
  且、、和(圖3.1.15打上斜線的
  三角形);其跨界二階導矢只與定義該邊界的及相鄰兩排頂點有關。
  
  (3)幾何不變性。
  
  (4)對稱性。
  
  (5)凸包性。
  
  
  
  
  
  3.Bezier曲面片的拼接
  
  如圖3.1.16所示,設兩張m×n次Bezier曲面片
  
  
  
  
  分別由控制頂點和定義。
  
  
  
  
  如果要求兩曲面片達到連續,則它們有公共的邊界,即:
  於是有.
  
  如果又要求沿該公共邊界達到連續,則兩曲面片在該邊界上有公共
  的切平面,因此曲面的法向應當是跨界連續的,即:
  
  
  
  
  下面來研究滿足這個方程的兩種方法。
  
  (1)鑑於(3.1.10)式,(3.1.11)式最簡單的取解是:
  
  
  (3.1.12)
  
  這相當於要求合成曲面上v爲常數的所有曲線,在跨界時有切向的連續
  性。爲了保證等式兩邊關於v的多項式次數相同,必須取(一個正
  常數)。於是有:
  
  
  
  即
  
  (2)(3.1.12)式使得兩張曲面片在邊界達到連續時,只涉及曲
  面和的兩列控制頂點,比較容易控制。用這種方法匹配合成
  的曲面的邊界,u向和v向是光滑連續的。實際上,該式的限制是苛刻的。
  
  爲了構造合成曲面時有更大的靈活性,Bezier在1972年放棄把
  (3.1.12)式作爲連續的條件,而以
  (3.1.13),來滿足(3.1.11)式,這僅僅要求位於和
  所在的同一個平面內,也就是曲面片邊界上相應點處的切平面,這樣
  就有了大得多的餘地,但跨界切矢在跨越曲面片的邊界時就不再連續了。
  
  同樣,爲了保證等式兩邊關於v的多項式次數相同,須爲任意正常數,
  是v的任意線性函數。
  
  4.遞推(de Casteljau)算法
  
  Bezier曲線的遞推(de Casteljau)算法,可以推廣到Bezier曲面的情形。
  若給定Bezier曲面特徵網格的控制頂點和一對參
  數值,則:
  
  
  (3.1.14)
  
  
  (3.1.15)
  或
  
  
  (3.1.16)
  
  (3.1.15)與(3.1.16)中的下標的變化範圍已在(3.1.14)式中給出。
  上面給出了確定曲面上一點的兩種方案。當按(3.1.15)式方案執行時,先以
  u參數值對控制網格u向的n+1個多邊形執行曲線的de Casteljau算法,m級遞
  推後,得到沿v向由n+1個頂點構成的中間多邊形。再以v參
  數值對它執行曲線的de Casteljau算法,n級遞推以後,得到一個,即所
  求曲面上的點。也可以按(3.1.16) 式方案執行,先以v參數值對控制
  網格沿v向的m+1個多邊形執行n級遞推,得沿u向由m+1個頂點
  構成的中間多邊形。再以u參數值對它執行n級遞推,得所求點。
  
  3.2.6 三邊Bezier曲面片
  
  與上一節定義在矩形域上的Bezier曲面片不同,本節介紹的三邊Bezier
  曲面片是定義在三邊形域上的,如圖3.1.17所示,爲了便於區分,我們把上
  一節介紹的Bezier曲面片稱爲四邊Bezier曲面片。三邊曲面片能夠較好地適
  應不規則與散亂數據的幾何造型及適合有限元分析中的三邊元素的需要。
  
  
  
  
  1.三角域內點的表示
  
  三角域內一點可以用面積座標(或重心座標)來表示,如圖3.1.18所示。
  
  
  
  
  G是三角形ABC內的任意一點,其面積座標爲。令三角形ABC面積
  爲s,三角形GBC面積爲,三角形GCA面積爲,三角形GAB面積爲,則:
  ,這裏所指的三角形面積是有向面積,按頂點字母順
  序,順時針旋轉爲正,逆時針旋轉爲負。若A=,B=,C=,
  則:
  三個座標分量u、v和w只有兩個是獨立的,因爲u+v+w=1 。
  三角形ABC稱爲域三角形,或稱爲三角域。

本文轉自
http://www.blog.edu.cn/user2/waruqi/archives/2006/1452750.shtml
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章