有没有办法使用CatmullRom插值来进行quaterions?

时间:2012-08-14 18:35:39

标签: c# math unity3d quaternions

我使用以下公式来获取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;
}

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

1 个答案:

答案 0 :(得分:0)

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

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

看看食人魔代码。标题提供了一些细节,您可以下载.cpp来实现。