将贝塞尔曲线与N点转换为多个三次贝塞尔曲线

时间:2013-03-11 19:39:34

标签: bezier cubic

我有大约48个ctrl点的bezier曲线,我想将它转换为许多立方贝塞尔曲线... 任何algorthim,数学理论或只是一个链接可能有帮助:) ??

1 个答案:

答案 0 :(得分:3)

数学理论:你不能这样做。 n阶贝塞尔曲线不能表示为任意数量的(n-1)阶贝塞尔曲线,因为曲率不能忠实地表示。你可以近似它,但你不会得到相同的结果。

练习:您可以将48阶曲线切割成简单曲线的部分,其中所有控制点都位于开始/结束基线的同一侧,而曲线上的中点与控制变量大致相同曲线的凸包中心。对于这样的曲线,低水平曲线是合理的近似值。您可以通过使用第48阶曲线的第一,第二等衍生根来查找曲线上的变形(请参阅http://pomax.github.com/bezierinfo/#derivativeshttp://pomax.github.com/bezierinfo/#splitting)然后运行de Casteljau的算法来分割每个拐点的控制变量值之间的曲线。然后,您可以使用三次曲线逼近每个合成的子曲线,结果看起来与原始曲线非常接近(或在像素级别看起来相同)。

那说:为什么你到底有一个48阶曲线,那是疯了= P