我在沿着hermite曲线移动的物体的方向上挣扎。 我想出了如何以恒定的速度移动它也有我的曲线的切线,它将是移动物体的前向矢量。我的问题是:我怎么知道向上和向右的向量?最简单的方法是从一个给定的旋转开始然后逐步通过曲线,将最后一个旋转作为下一个旋转的参考,就像在这个参考中一样:
Camera movement along a spline
但这会导致样条曲线末端无法控制的旋转。我想要做的是创建一个算法,它可以在曲线的任何一点为您提供正确的方向,而无需单步执行。理想情况下,它会将当前段的两个控制点的结构用作参考。 我想过使用某种预先计算的数据,它是从控制点的两个方向和当前曲线段形成的,但没有设法提出解决方案。 我很乐意得到任何答案或只是想法如何处理这个问题。
答案 0 :(得分:0)
让C(t)
成为相机轨迹,使用切线向量T(t)
。切线矢量控制俯仰和偏航。你缺少的是滚动控制。
定义“平行”D(t)
的辅助轨迹C(t)
并使用向量CD(t)
。向上向量由U(t)=T(t) /\ CD(t)
(标准化)给出,右向量由U(t) /\ T(t)
给出(标准化)。
答案 1 :(得分:0)
好的,我想出了一个使用frenet帧的解决方案。我为每个控制点定义一个方向,然后我计算每个段的样条曲线上的点数。然后使用先前的点方向计算每个点方向。第一点的取向等于控制点的取向。 Here是对程序的非常好的描述。 计算每个点方向后,可以对它们进行插值,使最后一个点方向与下一个控制点的方向匹配。