三階貝塞爾曲線擬合圓弧的一般公式

2021-10-05 08:09:20 字數 728 閱讀 3144

針對三階貝塞爾曲線擬合圓弧,進行一般性的公式求解,可以表達如下圖所示:

通過圓心o作出半徑為1的圓弧a到d,作ab為和cd為圓弧的切線段,長度均為h。

這樣,以a、b、c和d作為三階貝塞爾曲線的控制點,求得使曲線的中點經過e時,對應的h。

根據貝塞爾曲線的知識,我們知道三階貝塞爾曲線的引數方程如下,其中a、b、c、d為四個控制點座標,p(t)表示曲線上的每一點。

根據貝塞爾曲線的對稱性,不難想出e點在p(0.5)處,代入公式即可求得:

代入四個控制點座標a,b,c和d,可以求解p(0.5)點座標,並列出方程如下:

由正弦和余弦的倍角公式,可以進一步分解方程:

所以:代入方程,可以得到:

結合平方和公式

化簡方程,可以得到:

方程分別除以cos(θ/2)和sin(θ/2),進一步化簡可得:

可以發現針對x,y的兩個方程,最後化簡結果相同,也即兩個方程可以使用相同的h值為:

這樣,我們即求得針對三階貝塞爾曲線擬合圓弧的一般性的公式。

例如,當θ取90度時,得到三階貝塞爾曲線擬合1/4圓弧的係數h的值為:

又如,當θ取60度時,得到三階貝塞爾曲線擬合1/6圓弧的係數h的值為:

下面針對θ取值30到270度時,構建的乙個動畫演示,可以看到貝塞爾曲線與園的重合度在角度比較小時比較高。

備註:h體現為ab和cd的長度。

感謝grapher和geogebra軟體,使得方便排版文章中使用的公式和曲線。

canvas 三階貝塞爾曲線擬合圓

回顧 在做這個之前,我還做了 canvas 網易雲 鯨雲特效 水晶音波 的簡單實現 canvas 網易雲 鯨雲動效 孤獨星球 的簡單實現 canvas 實現多種形狀的烟花 基本思想就是用三階貝塞爾曲線擬合圓弧,用圓弧拼接成圓。其中比較關鍵的是h的長度,其最佳公式為 h 4 1 cos 2 3sin ...

Python繪製三階貝塞爾曲線

作者本科畢業設計是做機械人軌跡跟蹤控制,軌跡由函式曲線來描述,本文選取三階貝塞爾曲線為代表進行講解,並展示部分基於python tkinter的實現 首先簡單了解一下什麼是貝塞爾曲線 余弦函式曲線我就不多說了哈!貝塞爾曲線又稱貝茲曲線,是法國工程師皮埃爾.貝塞爾於1962年發表。貝塞爾曲線廣泛應用於...

三階貝塞爾曲線公式計算座標

1.valueanimator通過animatorset去play valueanimator valueanimator getbesselanimator tempimageview,rankwidth,rankheight animatorset animatorset new animato...