貝塞爾曲線原理(實現(xiàn)圖真漂亮)

Bézier curve(貝塞爾曲線)是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學曲線。 曲線定義:起始點、終止點(也稱錨點)、控制點。通過調(diào)整控制點,貝塞爾曲線的形狀會發(fā)生變化。 1962年,法國數(shù)學家Pierre Bézier第一個研究了這種矢量繪制曲線的方法,并給出了詳細的計算公式,因此按照這樣的公式繪制出來的曲線就用他的姓氏來命名,稱為貝塞爾曲線。

原理和簡單推導(dǎo)(以三階為例):

設(shè)P0、P02、P2是一條拋物線上順序三個不同的點。過P0P2點的兩切線交于P1點,在P02點的切線交P0P1P2P1P01P11,則如下比例成立:

image

這是所謂拋物線的三切線定理。

image

P0,P2固定,引入?yún)?shù)t,令上述比值為t:(1-t),即有:

image

t從0變到1,第一、二式就分別表示控制二邊形的第一、二條邊,它們是兩條一次Bezier曲線。將一、二式代入第三式得:

image

t從0變到1時,它表示了由三頂點P0、P1、P2三點定義的一條二次Bezier曲線。

并且表明:

二次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-1P1n-1的線性組合:

image

由此得到Bezier曲線的遞推計算公式

image

這就是這就是de Casteljau算法,可以簡單闡述三階貝塞爾曲線原理。

下面是總結(jié):轉(zhuǎn)自http://blog.csdn.net/tianhai110/article/details/2203572

Bézier curve(貝塞爾曲線)是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學曲線。 曲線定義:起始點、終止點(也稱錨點)、控制點。通過調(diào)整控制點,貝塞爾曲線的形狀會發(fā)生變化。 1962年,法國數(shù)學家Pierre Bézier第一個研究了這種矢量繪制曲線的方法,并給出了詳細的計算公式,因此按照這樣的公式繪制出來的曲線就用他的姓氏來命名,稱為貝塞爾曲線。

以下公式中:B(t)為t時間下 點的坐標;

P0為起點,Pn為終點,Pi為控制點

一階貝塞爾曲線(線段):

image

意義:由 P0 至 P1 的連續(xù)點, 描述的一條線段

二階貝塞爾曲線(拋物線):

image

通用公式:


image.png

原理:由 P0 至 P1 的連續(xù)點 Q0,描述一條線段。
由 P1 至 P2 的連續(xù)點 Q1,描述一條線段。
由 Q0 至 Q1 的連續(xù)點 B(t),描述一條二次貝塞爾曲線。

經(jīng)驗:P1-P0為曲線在P0處的切線。

三階貝塞爾曲線:

image

通用公式:

image.png

高階貝塞爾曲線:

4階曲線:

image

5階曲線:

image

@公式概述就Ok了,它的原理都在公式里,有興趣4階,5階可以百度一下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容