java3D與計算機圖形學期末複習 第四章 複雜曲線、曲面設計
圖檔與定義摘自《Java 3D 與計算機三維動态圖形網絡程式設計設計》
重點複習:Bezier曲線、曲面
1、三次Bezier曲線的矩陣表示

其中P0、P1、P2、P3是四個控制頂點,u為三次Bezier曲線的參數
2、Bezier曲線的De Casteljau算法
如果給定空間n+1個點P0、P1、P2…Pn,則可生成一條n次的Bezier曲線。根據參數u的值((0,1]區間内從小到大取值),并通過對控制頂點依次進行線性插值算法,可求出 Bezier曲線上的點。這種算法被稱為Bezier曲線的De Casteljau算法。
實作步驟(個人了解):
(1)将所有控制頂點依次連接配接,取參數u的值;
(2)每個連接配接線取1/3處的點,然後依次連接配接取得的1/3點(這裡以u=1/3為例);
(3)若最後還剩下兩個點及其以上,重複(2)步驟。每重複一次,頂點數會減少一個;
(4)最後剩餘一個點。這個點就是Bezier曲線在1/3的點。
(5)重複步驟(1)-(4),取不同的u值,可求出不同位置的Bezier曲線的點。
3、Bezier曲線、曲面拼接時的連續性
(1)C0連續:0階參數連續,第一段曲線的終點與第二段曲線的起點位置重合。
(2)C1連續:一階參數連續,兩相拼接的曲線在拼接點處重合,拼接處有相同的一階導數。
(3)C2連續:二階參數連續,兩相拼接的曲線在拼接點處重合,拼接處有相同的一階導數和二階導數。
(4)G0連續:0階幾何連續,性質同C0連續。
(5)G1連續:1階幾何連續,兩相拼接的曲線在拼接點處重合,切線方向相同,但大小不等。
(6)G2連續:2階幾何連續,兩相拼接的曲線段在拼接點處重合,在拼接點處C0連續、C1連續,在拼接點處二階導數方向相同,但大小不等。
4、Bezier曲面法向量計算
以三次Bezier曲面為例:
5、Bezier曲面的性質
(1)端點性質
Bezier曲面的4個角點與控制多邊形網格的4個角控制頂點重合。
(2)邊界線
Bezier曲面S(u,v)的4條邊界線S(o,v)、S(1,v), S(u,0),S(u,1)分别由對應的控制網格的4條邊界控制多邊形生成。
(3)曲面端點的切平面
由通過該端點的兩個控制多邊形的邊所形成的平面和Bezier曲面在該端點的切平面重合。
(4)凸包性
Bezier曲面位于其控制網格所形成的凸包之内。
(5)變差遞減性
空間任意條直線與Bezier曲面交點的個數不多于該直線與其控制多邊形網格的交點個數。