計算機圖形學曲線



在計算機圖形學中,我們經常需要在螢幕上繪製不同型別的物件。物件並非總是平坦的,我們需要多次繪製曲線來繪製物件。

曲線的型別

曲線是無限大的點集。每個點都有兩個鄰居,除了端點。曲線可以大致分為三類:**顯式曲線、隱式曲線**和**引數曲線**。

隱式曲線

隱式曲線表示透過使用可以測試點是否在曲線上的過程來定義曲線上的點集。通常,隱式曲線由以下形式的隱函式定義:

f(x, y) = 0

它可以表示多值曲線(對於一個 x 值有多個 y 值)。一個常見的例子是圓,其隱式表示為

x2 + y2 - R2 = 0

顯式曲線

數學函式 y = f(x) 可以繪製成曲線。這樣的函式是曲線的顯式表示。顯式表示不通用,因為它不能表示垂直線,並且也是單值的。對於每個 x 值,函式通常只計算一個 y 值。

引數曲線

具有引數形式的曲線稱為引數曲線。顯式和隱式曲線表示僅在已知函式時才能使用。在實踐中,使用引數曲線。二維引數曲線具有以下形式:

P(t) = f(t), g(t) 或 P(t) = x(t), y(t)

函式 f 和 g 成為曲線上的任何點的 (x, y) 座標,當引數 t 在某個區間 [a, b](通常為 [0, 1])內變化時獲得這些點。

貝塞爾曲線

貝塞爾曲線是由法國工程師**皮埃爾·貝塞爾**發現的。這些曲線可以在其他點的控制下生成。使用控制點近似切線來生成曲線。貝塞爾曲線可以用數學方式表示為:

$$\sum_{k=0}^{n} P_{i}{B_{i}^{n}}(t)$$

其中 $p_{i}$ 是點集,${B_{i}^{n}}(t)$ 表示伯恩斯坦多項式,由以下公式給出:

$${B_{i}^{n}}(t) = \binom{n}{i} (1 - t)^{n-i}t^{i}$$

其中**n**是多項式的次數,**i**是索引,**t**是變數。

最簡單的貝塞爾曲線是從點 $P_{0}$ 到 $P_{1}$ 的直線。二次貝塞爾曲線由三個控制點確定。三次貝塞爾曲線由四個控制點確定。

Bezier Curves

貝塞爾曲線的性質

貝塞爾曲線具有以下性質:

  • 它們通常遵循控制多邊形的形狀,控制多邊形由連線控制點的線段組成。

  • 它們始終穿過第一個和最後一個控制點。

  • 它們包含在其定義控制點的凸包中。

  • 定義曲線段的多項式的次數比定義多邊形點的數量少 1。因此,對於 4 個控制點,多項式的次數為 3,即三次多項式。

  • 貝塞爾曲線通常遵循定義多邊形的形狀。

  • 端點處切向量的方向與由第一段和最後一段確定的向量方向相同。

  • 貝塞爾曲線的凸包屬性確保多項式平滑地遵循控制點。

  • 任何直線與貝塞爾曲線的交點次數不超過它與控制多邊形的交點次數。

  • 它們在仿射變換下是不變的。

  • 貝塞爾曲線表現出全域性控制,這意味著移動一個控制點會改變整個曲線的形狀。

  • 給定的貝塞爾曲線可以在點 t=t0 處細分為兩個貝塞爾段,這兩個段在對應於引數值 t=t0 的點處連線在一起。

B 樣條曲線

由伯恩斯坦基函式生成的貝塞爾曲線靈活性有限。

  • 首先,指定的polygon頂點數固定了定義曲線的所得多項式的階數。

  • 第二個限制特性是混合函式的值在整個曲線上對所有引數值都非零。

B 樣條基包含伯恩斯坦基作為特例。B 樣條基是非全域性的。

B 樣條曲線定義為控制點 Pi 和 B 樣條基函式 $N_{i,}$ k (t) 的線性組合,由下式給出

$C(t) = \sum_{i=0}^{n}P_{i}N_{i,k}(t),$ $n\geq k-1,$ $t\: \epsilon \: [ tk-1,tn+1 ]$

其中,

  • {$p_{i}$: i=0, 1, 2….n} 是控制點

  • k 是 B 樣條曲線的曲線段的階數。階數 k 表示曲線由 k - 1 次的分段多項式段組成,

  • the $N_{i,k}(t)$ 是“歸一化 B 樣條混合函式”。它們由階數 k 和通常稱為“節點序列”的實數的非遞減序列描述。

$${t_{i}:i = 0, ... n + K}$$

Ni, k 函式描述如下:

$$N_{i,1}(t) = \left\{\begin{matrix} 1,& if \:u \: \epsilon \: [t_{i,}t_{i+1}) \\ 0,& Otherwise \end{matrix}\right.$$

如果 k > 1,則

$$N_{i,k}(t) = \frac{t-t_{i}}{t_{i+k-1}} N_{i,k-1}(t) + \frac{t_{i+k}-t}{t_{i+k} - t_{i+1}} N_{i+1,k-1}(t)$$

並且

$$t \: \epsilon \: [t_{k-1},t_{n+1})$$

B 樣條曲線的性質

B 樣條曲線具有以下性質:

  • 對於任何引數值,B 樣條基函式的總和為 1。

  • 每個基函式對於所有引數值都為正或零。

  • 除了 k=1 之外,每個基函式都恰好有一個最大值。

  • 曲線的最大階數等於定義多邊形頂點數。

  • B 樣條多項式的次數與定義多邊形頂點數無關。

  • B 樣條允許對曲線曲面進行區域性控制,因為每個頂點僅在其關聯的基函式非零的引數值範圍內影響曲線的形狀。

  • 曲線表現出降維特性。

  • 曲線通常遵循定義多邊形的形狀。

  • 任何仿射變換都可以透過將其應用於定義多邊形的頂點來應用於曲線。

  • 曲線位於其定義多邊形的凸包內。

廣告