【问题标题】:convert bezier curve with N point to many cubic bezier curve将具有 N 点的贝塞尔曲线转换为许多三次贝塞尔曲线
【发布时间】:2015-11-09 22:47:54
【问题描述】:

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

【问题讨论】:

  • 你能举一个数据的例子吗?这是干什么用的?

标签: bezier cubic


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 2016-10-05
    • 2012-01-19
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2016-02-24
    相关资源
    最近更新 更多