【问题标题】:Bézier curve compute point from one axis贝塞尔曲线从一个轴计算点
【发布时间】:2009-12-13 15:16:07
【问题描述】:

我有一个三次贝塞尔曲线。但是当我只需要一点时,我就有问题了。我只有 X 轴的值,并且想找到一个与 Y 轴对应的值。或者找到t步,我可以很容易地计算出Y轴。

有什么办法吗?或者有什么公式可以做到这一点?

【问题讨论】:

    标签: geometry bezier point curve


    【解决方案1】:

    如果曲线不是X monotone,任何解决方案都必须处理可能存在多个解决方案的事实。考虑三次贝塞尔曲线 (0,0),(2,0),(-1,1),(1,1):

    如您所见,有 4 个参数值(和 Y 坐标)在 X==1/2 处。

    这意味着如果您使用细分(这可能是您最简单的解决方案),那么您需要注意您的初始边界 t 值仅围绕您想要的点。

    您还可以猜测这对代数解的阶数意味着什么。

    【讨论】:

      【解决方案2】:

      通过为这些维度添加系数,参数曲线可以扩展到任何维度。你确定你把事情搞清楚了吗?您似乎使用 x 轴作为曲线参数 tt 参数通过两个三次方程控制 X 和 Y 坐标的计算。看看Wikipedia,它为 2D 案例提供了一些非常简洁的解释。

      编辑:

      作为一般三次多项式求解。但请注意,它可能有 3 个解决方案。

      【讨论】:

      • 是的,我知道 t 参数控制 X 和 Y 坐标的计算。我有 X 轴的值,需要 Y 轴的 corespondig 值,但不幸的是我不知道 t。
      • 使用二等分算法来逼近 t,因为启发式使用从已知 x 值到当前计算的 x 值的距离,基于当前对 t.
      • 我认为有更好的解决方案。但这必须解决问题;)谢谢兄弟。
      • 我目前正在寻找一种更好的基于矩阵的方法。我会告诉你的。
      猜你喜欢
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多