1

我正在使用以下公式在 Unity 中沿样条线获取位置:

public Vector3 CatmullRom(float t, Vector3 a, Vector3 b, Vector3 c, Vector3 d)
{
    return (
        (b * 2.0f) +
        (-a + c) * t +
        (a * 2.0f - b * 5.0f + c * 4.0f - d) * t * t +
        (-a + b * 3.0f - c * 3.0f + d) * t * t * t
        ) * 0.5f;
}

给定四个四元数,有没有办法找到每个点的旋转?

4

1 回答 1

0

您不能直接执行此操作,但您可以扩展 Spline 代码以适应四元数。我手头没有任何代码,但我可以为您指出Ogre3D SDK,您可以将其用作起点。

使用样条曲线,您可以使用控制点和切线来生成中间点。对于四元数,您需要求导数以找到方向的变化率,然后使用它来创建中间点。

看食人魔代码。标头提供了一些详细信息,您可以下载 .cpp 以进行实施。

于 2012-08-14T21:07:55.853 回答