2012-12-17 43 views
1

我必須編寫一個函數,將三次貝塞爾(start,end,cp1,cp2)轉換爲簡單的二次(start,end,cp1)實例(一個立方可以變成2或更多的二次方)。三次貝塞爾到二次方

接受任何編碼語言,我只需要該算法。

+2

本文可能戈夫一些很好的提示:http://www.timotheegroleau.com/Flash/文章/ cubic_bezier_in_flash.htm –

+1

澄清:1)有沒有辦法? 2)最好的近似 – csomakk

+0

偉大的環節,我想知道爲什麼我找不到它。謝謝 – csomakk

回答

3

有一定的形狀,如圓形,可以由立方體近似足夠好,但不是由二次貝塞爾的。所以從純粹的數學角度來看,這個任務是無法解決的。

然而,當然,用一組分段二次貝塞爾來逼近單立方貝塞爾是可能的。每個二次方程的設定點都在三次方的確切點上。通過一些優化手段(最小二乘法或類似的方法)找到的控制點,可以儘量減少立方和二次貝塞爾之間的差異。

+0

雖然確實存在可以用立方而不是二次貝塞爾曲線表示的形狀,但圓形也不能用任何一種表示。它可以近似。 –

+0

@MikePedersen:謝謝。我重新回答了我的答案。 – datenwolf

相關問題