天天看點

java3D與計算機圖形學期末複習 第四章

java3D與計算機圖形學期末複習 第四章 複雜曲線、曲面設計

圖檔與定義摘自《Java 3D 與計算機三維動态圖形網絡程式設計設計》

重點複習:Bezier曲線、曲面

1、三次Bezier曲線的矩陣表示

java3D與計算機圖形學期末複習 第四章

其中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的點。

java3D與計算機圖形學期末複習 第四章

(5)重複步驟(1)-(4),取不同的u值,可求出不同位置的Bezier曲線的點。

java3D與計算機圖形學期末複習 第四章

3、Bezier曲線、曲面拼接時的連續性

(1)C0連續:0階參數連續,第一段曲線的終點與第二段曲線的起點位置重合。

(2)C1連續:一階參數連續,兩相拼接的曲線在拼接點處重合,拼接處有相同的一階導數。

(3)C2連續:二階參數連續,兩相拼接的曲線在拼接點處重合,拼接處有相同的一階導數和二階導數。

(4)G0連續:0階幾何連續,性質同C0連續。

(5)G1連續:1階幾何連續,兩相拼接的曲線在拼接點處重合,切線方向相同,但大小不等。

(6)G2連續:2階幾何連續,兩相拼接的曲線段在拼接點處重合,在拼接點處C0連續、C1連續,在拼接點處二階導數方向相同,但大小不等。

4、Bezier曲面法向量計算

以三次Bezier曲面為例:

java3D與計算機圖形學期末複習 第四章

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曲面交點的個數不多于該直線與其控制多邊形網格的交點個數。