貝塞爾曲線(B-spline)的原理與應用

什麼是貝塞爾曲線?

貝塞爾曲線(Bézier curve),又稱貝茲曲線或貝濟埃曲線,是應用於二維圖形應用程式的數學曲線。

來源

貝塞爾曲線於1962,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發表,他運用貝塞爾曲線來為汽車的主體進行設計。貝塞爾曲線最初由Paul de Casteljau於1959年運用de Casteljau演演算法開發,以穩定數值的方法求出貝茲曲線。

貝塞爾曲線完全由其控制點決定其形狀, n個控制點對應著n-1階的貝塞爾曲線,並且可以通過遞歸的方式來繪製.

特點

貝塞爾曲線形狀完全由控制點控制,有n個控制點就對應n-1階的貝塞爾曲線。

Tip:下面公式中,B指曲線中點的集合,P指點,t指變化時間

線性公式:

給定點P0、P1,線性貝茲曲線只是一條兩點之間的直線。這條線由下式給出:
在這裡插入圖片描述

且其等同於線性插值。

二次方公式

二次方貝茲曲線的路徑由給定點P0、P1、P2的函數B(t)追蹤:
在這裡插入圖片描述

TrueType字型就運用了以貝茲樣條組成的二次貝茲曲線。

三次方公式

P0、P1、P2、P3四個點在平面或在三維空間中定義了三次方貝茲曲線。曲線起始於P0走向P1,並從P2的方向來到P3。一般不會經過P1或P2;這兩個點只是在那裡提供方向資訊。P0和P1之間的間距,決定了曲線在轉而趨進P3之前,走向P2方向的「長度有多長」。
曲線的參數形式為:
在這裡插入圖片描述

現代的成象系統,如PostScript、Asymptote和Metafont,運用了以貝茲樣條組成的三次貝茲曲線,用來描繪曲線輪廓。

一般參數公式

階貝茲曲線可如下推斷。給定點P0、P1、…、Pn,其貝茲曲線即:
在這裡插入圖片描述

如上公式可如下遞歸表達: 用表示由點P0、P1、…、Pn所決定的貝茲曲線。
用平常話來說,階的貝茲曲線,即雙階貝茲曲線之間的插值。