贝塞尔曲线拟合原理
1.什么是貝塞爾曲線?
貝塞爾曲線所依據(jù)的最原始的數(shù)學(xué)公式,是早在1912年就廣為人知的伯恩斯坦多項(xiàng)式。簡單來說,伯恩斯坦多項(xiàng)式可以用來證明,在[ a, b ] 區(qū)間上所有的連續(xù)函數(shù)都可以用多項(xiàng)式來逼近,并且收斂性很強(qiáng),也就是一致收斂。再簡單點(diǎn),就是一個(gè)連續(xù)函數(shù),你可以將它寫成若干個(gè)伯恩斯坦多項(xiàng)式相加的形式,并且,隨著 n→∞,這個(gè)多項(xiàng)式將一致收斂到原函數(shù),這個(gè)就是伯恩斯坦斯的逼近性質(zhì)。到了1959年,當(dāng)時(shí)就職于雪鐵龍的法國數(shù)學(xué)家 Paul de Casteljau 開始對伯恩斯坦多項(xiàng)式進(jìn)行了圖形化的嘗試,并且提供了一種數(shù)值穩(wěn)定的德卡斯特里奧(de Casteljau) 算法。根據(jù)這個(gè)算法,就可以只通過很少的控制點(diǎn),去生成復(fù)雜的平滑曲線,也就是貝塞爾曲線。
而貝塞爾曲線的得名,得歸功于1962年就職于雷諾的法國工程師皮埃爾·貝塞爾(Pierre Bézier),他使用這種方法來輔助汽車的車體工業(yè)設(shè)計(jì),并且廣泛宣傳,因此大家才都稱他為貝塞爾曲線 。
2.貝塞爾曲線是怎么畫出來的?
首先,我們在平面內(nèi)選3個(gè)不同線的點(diǎn)并且依次用線段連接。如下所示:接著,我們在AB和BC線段上找出點(diǎn)D和點(diǎn)E,使得AD/AB = BE/BC:
再接著,連接DE,并在DE上找出一點(diǎn)F,使得DF/DE = AD/AB = BE/BC:
然后,根據(jù)我們高中所學(xué)的極限的知識,讓選取的點(diǎn)D在第一條線段上從起點(diǎn)A,移動到終點(diǎn)B,找出所有點(diǎn)F,并將它們連起來。最后你會發(fā)現(xiàn),你得到了一條非常光滑的曲線,這條就是傳說中的,貝塞爾曲線。
二階貝塞爾曲線動態(tài)演示:
三階貝塞爾曲線動態(tài)演示:
四階貝塞爾曲線動態(tài)演示:
五階貝塞爾曲線動態(tài)演示:
所以貝塞爾曲線的厲害之處就在這里,從1-n階的連續(xù)函數(shù),他都可以計(jì)算得到一條光滑曲線。
3.貝塞爾曲線的特點(diǎn)和用途?
特點(diǎn)一:曲線通過始點(diǎn)和終點(diǎn),并與特征多邊形首末兩邊相切于始點(diǎn)和終點(diǎn),中間點(diǎn)將曲線拉向自己。 特點(diǎn)二:平面離散點(diǎn)控制曲線的形狀,改變一個(gè)離散點(diǎn)的坐標(biāo),曲線的形狀將隨之改變(點(diǎn)對曲線具有整體控制性)。 特點(diǎn)三:曲線落在特征多邊形的凸包之內(nèi),它比特征多邊形更趨于光滑。 特點(diǎn)四:貝塞爾曲線屬于“平均通過”式曲線。由于貝塞爾曲線控制簡便,而且它具有很強(qiáng)的描述能力,因此它在工業(yè)設(shè)計(jì)上已經(jīng)被廣泛使用了。不僅如此,在計(jì)算機(jī)圖形學(xué)領(lǐng)域(特別是矢量圖形學(xué)),貝塞爾曲線也有著舉足輕重的地位。而作為程序猿,我們經(jīng)常會用貝塞爾曲線來繪圖(由貝塞爾曲線畫出來的圖很光滑~),來做動畫(很自然的動畫)等等。也就是由于它可以發(fā)揮的作用領(lǐng)域太廣了,因此我們時(shí)不時(shí)都會聽到這個(gè)名字。
4.如何用貝塞爾曲線?
首先,要明確的一點(diǎn)是,對于貝塞爾曲線來說,最重要的點(diǎn)是,數(shù)據(jù)點(diǎn)和控制點(diǎn)。數(shù)據(jù)點(diǎn): 指一條路徑的起始點(diǎn)和終止點(diǎn)。
控制點(diǎn):控制點(diǎn)決定了一條路徑的彎曲軌跡。 根據(jù)控制點(diǎn)的個(gè)數(shù),貝塞爾曲線被分為一階貝塞爾曲線(0個(gè)控制點(diǎn))、二階貝塞爾曲線(1個(gè)控制點(diǎn))、三階貝塞爾曲線(2個(gè)控制點(diǎn))等等。
而系統(tǒng)給我們提供了一個(gè)叫做UIBezierPath類,用它可以畫簡單的圓形,橢圓,矩形,圓角矩形,也可以通過添加點(diǎn)去生成任意的圖形,還可以簡單的創(chuàng)建一條二階貝塞爾曲線和三階貝塞爾曲線。
5.參考資料
http://www.cnblogs.com/zhangrunchao/p/6178366.htmlJOHNH.MATHEWS), KURTISD.FINK. 數(shù)值方法(MATLAB版)[M]. 電子工業(yè)出版社, 2005.
總結(jié)
- 上一篇: 最小二乘抛物线拟合原理及证明
- 下一篇: 局域网聊天 一个十分热门的话题