簡介
貝塞爾曲線於1962年,由法國工程師皮埃爾·貝塞爾(Pierre Bézier)所廣泛發表,他運用貝塞爾曲線來爲汽車的主體進行設計。貝塞爾曲線最初由Paul de Casteljau於1959年運用de Casteljau算法開發,以穩定數值的方法求出貝塞爾曲線。
實例
線性貝塞爾曲線
給定點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所決定的貝塞爾曲線。則
用平常話來說,階的貝塞爾曲線,即雙階貝塞爾曲線之間的插值。
術語
一些關於參數曲線的術語,有
即多項式
又稱作n階的伯恩斯坦基底多項式,定義00 = 1。
點Pi稱作貝塞爾曲線的控制點。多邊形以帶有線的貝塞爾點連接而成,起始於P0並以Pn終止,稱作貝塞爾多邊形(或控制多邊形)。貝塞爾多邊形的凸包(convex hull)包含有貝塞爾曲線。
註解
- 開始於P0並結束於Pn的曲線,即所謂的端點插值法屬性。
- 曲線是直線的充分必要條件是所有的控制點都位在曲線上。同樣的,貝塞爾曲線是直線的充分必要條件是控制點共線。
- 曲線的起始點(結束點)相切於貝塞爾多邊形的第一節(最後一節)。
- 一條曲線可在任意點切割成兩條或任意多條子曲線,每一條子曲線仍是貝塞爾曲線。
- 一些看似簡單的曲線(如圓)無法以貝塞爾曲線精確的描述,或分段成貝塞爾曲線(雖然當每個內部控制點對單位圓上的外部控制點水平或垂直的的距離爲時,分成四段的貝塞爾曲線,可以小於千分之一的最大半徑誤差近似於圓)。
- 位於固定偏移量的曲線(來自給定的貝塞爾曲線),又稱作偏移曲線(假平行於原來的曲線,如兩條鐵軌之間的偏移)無法以貝塞爾曲線精確的形成(某些瑣屑實例除外)。無論如何,現存的啓發法通常可爲實際用途中給出近似值。
建構貝塞爾曲線
線性曲線
線性貝塞爾曲線演示動畫,t in [0,1] |
線性貝塞爾曲線函數中的t會經過由P0至P1的B(t)所描述的曲線。例如當t=0.25時,B(t)即一條由點P0至P1路徑的四分之一處。就像由0至1的連續t,B(t)描述一條由P0至P1的直線。
二次曲線
爲建構二次貝塞爾曲線,可以中介點Q0和Q1作爲由0至1的t:
- 由P0至P1的連續點Q0,描述一條線性貝塞爾曲線。
- 由P1至P2的連續點Q1,描述一條線性貝塞爾曲線。
- 由Q0至Q1的連續點B(t),描述一條二次貝塞爾曲線。
二次貝塞爾曲線的結構 | 二次貝塞爾曲線演示動畫,t in [0,1] |
高階曲線
爲建構高階曲線,便需要相應更多的中介點。對於三次曲線,可由線性貝塞爾曲線描述的中介點Q0、Q1、Q2,和由二次曲線描述的點R0、R1所建構:
三次貝塞爾曲線的結構 | 三次貝塞爾曲線演示動畫,t in [0,1] |
對於四次曲線,可由線性貝塞爾曲線描述的中介點Q0、Q1、Q2、Q3,由二次貝塞爾曲線描述的點R0、R1、R2,和由三次貝塞爾曲線描述的點S0、S1所建構:
四次貝塞爾曲線的結構 | 四次貝塞爾曲線演示動畫,t in [0,1] |