我使用以下公式来获取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;
}
给定四个四元数,有没有办法在每个点找到旋转?
答案 0 :(得分:0)
您不能直接执行此操作,但可以扩展Spline代码以适应四元数。我没有任何代码方便,但我可以指向Ogre3D SDK,您可以将其作为起点。
使用样条线,您可以使用控制点和切线来生成中间点。使用四元数时,您需要使用导数来查找方向的变化率,然后使用它来创建中间点。
看看食人魔代码。标题提供了一些细节,您可以下载.cpp来实现。