【问题标题】:Is there a way to use CatmullRom interpolation for quaterions?有没有办法对四元数使用 Catmull Rom 插值?
【发布时间】:2012-08-11 02:48:49
【问题描述】:

我正在使用以下公式在 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;
}

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

【问题讨论】:

    标签: c# math unity3d quaternions


    【解决方案1】:

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

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

    查看食人魔代码。标头给出了一些细节,您可以下载 .cpp 进行实现。

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      相关资源
      最近更新 更多