定义曲线的方法

时间:2011-12-02 04:51:34

标签: collision-detection bezier continuous physics-engine elliptic-curve

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

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

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

  • 有哪些技术可用于数学定义2D曲线?

  • 每个人在速度,灵活性和施工简便性方面有哪些优势/劣势?

  • 这种技术对于形状交叉的可预测性至关重要的引擎是否可行?

1 个答案:

答案 0 :(得分:3)

与您的标记一样,您正在描述Bezier curves。它在数学上已经很好地定义了,因此您可以将其用于碰撞检测,但是根据您所做的事情,它可能会使方程式更难以编写和求解。我不太了解它,但似乎是接近样条曲线的标准方法是NURBS,维基百科似乎有一篇关于这个主题的文章。 NURBS文章可能涵盖了所有这些,但是在一堆点之间绘制平滑曲线的快速而肮脏的方法是使用cubic splines在每两个点之间插入一个三次多项式,使得一阶导数在边缘。通过这种方式,您可以得到一条贯穿所有点的曲线,并且在任何地方看起来都很平滑,初始点没有尖角。