2012-12-17 40 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

相关问题