我有大约48个ctrl点的bezier曲线,我想将它转换为许多立方贝塞尔曲线... 任何algorthim,数学理论或只是一个链接可能有帮助:) ??
答案 0 :(得分:3)
数学理论:你不能这样做。 n阶贝塞尔曲线不能表示为任意数量的(n-1)阶贝塞尔曲线,因为曲率不能忠实地表示。你可以近似它,但你不会得到相同的结果。
练习:您可以将48阶曲线切割成简单曲线的部分,其中所有控制点都位于开始/结束基线的同一侧,而曲线上的中点与控制变量大致相同曲线的凸包中心。对于这样的曲线,低水平曲线是合理的近似值。您可以通过使用第48阶曲线的第一,第二等衍生根来查找曲线上的变形(请参阅http://pomax.github.com/bezierinfo/#derivatives和http://pomax.github.com/bezierinfo/#splitting)然后运行de Casteljau的算法来分割每个拐点的控制变量值之间的曲线。然后,您可以使用三次曲线逼近每个合成的子曲线,结果看起来与原始曲线非常接近(或在像素级别看起来相同)。
那说:为什么你到底有一个48阶曲线,那是疯了= P