1

我有大约 48 个 ctrl 点的贝塞尔曲线,我想将其转换为许多三次贝塞尔曲线......任何算法、数学理论或只是一个链接都可能有帮助:) ??

4

1 回答 1

3

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

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

那就是说:为什么你甚至有48阶曲线,这太疯狂了=P

于 2013-03-29T16:36:17.100 回答