3

我试图在我的物理引擎圆度/曲率中给出形状。

我知道在数学上定义曲线的各种方法;例如贝塞尔曲线、椭圆等。但是我不确定哪种方法最适合在我的物理引擎中使用,因为必须考虑每种方法的速度、构造的可行性和灵活性。我想要一个系统,用户可以在其中轻松地形成相当复杂的曲线,但仍然使相交计算简单快速。

我的物理引擎也是纯连续的,这意味着我必须能够根据恒定的线性/角速度计算曲线与其他曲线和直线碰撞的时间。

  • 有哪些技术可以在数学上定义 2D 曲线?

  • 每种方法在速度、灵活性和构造简单性方面的优缺点是什么?

  • 对于形状相交的可预测性至关重要的发动机,该技术是否可行?

4

1 回答 1

3

就像您的标签说的那样,您正在描述Bezier 曲线。它在数学上是明确定义的,因此您可以将其用于碰撞检测,尽管取决于您在做什么,它可能会使方程式稍微难以编写和求解。我对此了解不多,但似乎是处理样条线的标准方法是NURBS,维基百科似乎有相当多的文章关于这个主题。NURBS 文章可能涵盖了所有这些,但是在一堆点之间绘制平滑曲线的一种快速而肮脏的方法是使用三次样条通过在每两个点之间插入一个三次多项式,使得一阶导数在边缘匹配。这样,您将获得一条穿过所有点的曲线,并且在任何地方看起来都很平滑,初始点没有尖角。

于 2011-12-06T19:48:57.113 回答