我正在尝试对一个物体进行动画处理,比如一辆汽车。我希望它从点 x1,y1,z1 移动到点 x2,y2,z2。它会移动到这些点,但似乎是在漂移而不是指向运动方向。所以我的问题是:如何在我的updateframe()事件中解决这个问题?您能指引我一些好的资源吗?
谢谢。
谢谢。
从一个位置到另一个位置的移动会给物体一个速度,速度是一个向量,将该向量归一化将给出运动的方向向量,您可以将其插入“观察”矩阵中,通过上方向量与该向量进行叉积以获得侧面向量,然后您就拥有了一个完整的矩阵,用于控制物体运动的方向。
始终将汽车指向目标点是简单而廉价的,但如果汽车沿着弯曲的路径行驶,则无法奏效。在这种情况下,您需要将汽车指向其当前位置的切线(请参见上面的其他答案)。
我认为插值是导致你看到的漂移的原因。 你需要模拟转向的方式..你的更新函数应该 1) 总是将汽车移动到它指向的方向,2) 将汽车转向当前目标..两者不应互相影响,以便转向会更快地发生和完成而不是到达。
x = r.sin(2πt/n)
它的速度向量的x分量将为:
vx = dx/dt = r.(2π/n)cos(2πt/n)
对于所有的x、y和z分量,执行此操作,归一化结果向量,即可得到您的方向。