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

时间:2012-05-17 13:55:07

标签: math 3d opengl-es-2.0 computational-geometry pathgeometry

我想要实现的最好的例子就是这个YouTube视频

http://www.youtube.com/watch?v=53Tk-oGL2Uo

构成“Atari”一词的字母从屏幕边缘旋入,然后排成一行,最后形成单词。

我知道如何让一个物体在屏幕上移动,但是我如何计算旋转,以便当物体到达其最终位置时它面向正确的方向?

2 个答案:

答案 0 :(得分:2)

诀窍是让对象在特定时间(例如t = 5.0秒)处于正确位置,然后向前计算向前

即。在5.0秒之前,您将对象旋转[angular velocity] * (5.0 - t)并翻译[velocity] * (5.0 - t)

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

答案 1 :(得分:0)

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

然后根据当前时间运行该动画很简单。

Here's来自我自己的图书馆的示例,说明了这种技术。这样做一次会持续很长时间,从长远来看会给你带来更多好处,而不是从程序上找出如何做到这一点。