Math 在屏幕上移动旋转的3D对象,使其在停止时面向正确的方向

Math 在屏幕上移动旋转的3D对象,使其在停止时面向正确的方向,math,3d,opengl-es-2.0,computational-geometry,pathgeometry,Math,3d,Opengl Es 2.0,Computational Geometry,Pathgeometry,我正在努力实现的最好的例子就是这个youtube视频 组成“Atari”一词的字母从屏幕边缘飞来,旋转着,然后排成一行,最后组成这个词 我知道如何使对象在屏幕上移动,但如何计算旋转,以便当对象到达其末端位置时,它朝向正确的方向?诀窍是在特定时间(例如t=5.0秒)内使对象实际处于正确的位置,然后向后计算前几帧 i、 e.在5.0秒之前,将物体旋转[角速度]*(5.0-t)并平移[速度]*(5.0-t) 如果你这样做,那么看起来就像是物体一起飞行,完美地排列在一起。但实际上,您所做的是将它们在随

我正在努力实现的最好的例子就是这个youtube视频

组成“Atari”一词的字母从屏幕边缘飞来,旋转着,然后排成一行,最后组成这个词


我知道如何使对象在屏幕上移动,但如何计算旋转,以便当对象到达其末端位置时,它朝向正确的方向?

诀窍是在特定时间(例如t=5.0秒)内使对象实际处于正确的位置,然后向后计算前几帧

i、 e.在5.0秒之前,将物体旋转
[角速度]*(5.0-t)
并平移
[速度]*(5.0-t)


如果你这样做,那么看起来就像是物体一起飞行,完美地排列在一起。但实际上,您所做的是将它们在随机方向上分开,并在时间上向后播放动画:-)

正确的方法是使用关键帧。您可以在任何3D编辑器中创建关键帧(我使用MAX,但您可以使用Blender)。您不必使用实际字符,即使是长方体也足够了。然后,您将需要导出这些动画帧(同样,在MAX中,我将使用ASE-将使用Blender),并在运行时加载它们或将它们转换为代码

然后,只需根据当前时间运行动画


我自己的库中的一个示例演示了这种技术。这样做一次,你会持续更长的时间,从长远来看,比弄清楚如何按程序进行更有益。

确保角速度乘以旋转时间是360度的倍数