貝塞爾曲線原理(轉載)
最近在做圖形學的實驗,關於貝塞爾曲線在網上看到一個非常好的資料:
以下內容轉載自:https://www.cnblogs.com/hnfxs/p/3148483.html
原理和簡單推導(以三階為例):
設P0、P02、P2是一條拋物線上順序三個不同的點。過P0和P2點的兩切線交於P1點,在P02點的切線交P0P1和P2P1於P01和P11,則如下比例成立:
這是所謂拋物線的三切線定理。
當P0,P2固定,引入參數t,令上述比值為t:(1-t),即有:
t從0變到1,第一、二式就分別表示控制二邊形的第一、二條邊,它們是兩條一次Bezier曲線。將一、二式代入第三式得:
當t從0變到1時,它表示了由三頂點P0
並且表明:
這二次Bezier曲線P02可以定義為分別由前兩個頂點(P0,P1)和後兩個頂點(P1,P2)決定的一次Bezier曲線的線性組合。
依次類推,
由四個控制點定義的三次Bezier曲線P03可被定義為分別由(P0,P1,P2)和(P1,P2,P3)確定的二條二次Bezier曲線的線性組合,由(n+1)個控制點Pi(i=0,1,...,n)定義的n次Bezier曲線P0n可被定義為分別由前、後n個控制點定義的兩條(n-1)次Bezier曲線P0n-1與P1n-1的線性組合:
由此得到Bezier曲線的遞推計算公式
這就是這就是de Casteljau算法,可以簡單闡述三階貝塞爾曲線原理。
下面是總結:轉自http://blog.csdn.net/tianhai110/article/details/2203572
Bézier curve(貝塞爾曲線)是應用於二維圖形應用程序的數學曲線。 曲線定義:起始點、終止點(也稱錨點)、控制點。通過調整控制點,貝塞爾曲線的形狀會發生變化。 1962年,法國數學家Pierre Bézier第一個研究了這種矢量繪制曲線的方法,並給出了詳細的計算公式,因此按照這樣的公式繪制出來的曲線就用他的姓氏來命名,稱為貝塞爾曲線。
以下公式中:B(t)為t時間下 點的坐標;
P0為起點,Pn為終點,Pi為控制點
一階貝塞爾曲線(線段):
意義:由 P0 至 P1 的連續點, 描述的一條線段
二階貝塞爾曲線(拋物線):
原理:由 P0 至 P1 的連續點 Q0,描述一條線段。
由 P1 至 P2 的連續點 Q1,描述一條線段。
由 Q0 至 Q1 的連續點 B(t),描述一條二次貝塞爾曲線。
經驗:P1-P0為曲線在P0處的切線。
三階貝塞爾曲線:
通用公式:
高階貝塞爾曲線:
4階曲線:
5階曲線:
貝塞爾曲線原理(轉載)