使用Android opengl我需要将对象从A点移动到B点,并在同一时间围绕它的本地Z轴旋转它。我一直在阅读过去3天的教程,每个人都会给你提供一些信息和提示,但没有人能够为初学者从上到下地进行解释。Android openGL对象同时翻译和旋转
我知道如何只从A点平移对象到B点。 我也知道如何旋转点A的对象围绕其局部轴(其翻译为原点,旋转它,把它翻译回) 我不知道如何在同一时间旋转和翻译。
我试着翻译成原点,旋转,翻译回来,然后转换到B点。它不起作用,我想我知道为什么(旋转是搞乱了对象轴,所以翻译到点B不正确)
A(-x1, y1 , -z1)
B(-x1 + deltaX, y1 + deltaY, -z1 + deltaZ)
_gl.glTranslatef(x1, -y1 , z1);
_gl.glRotatef(degrees, x1, -y1 , z1);
_gl.glTranslatef(-x1, y1 , -z1);
_gl.glTranslatef(deltaX, deltaY, deltaZ);
我需要考虑旋转轴的方式。有人说我可以用quaterninons或旋转矩阵等来做到这一点。 但我没有足够的opengl知识来使用apis来解决这个问题。
有人可以向我解释这个吗?还有一些代码?
预先感谢您。
我不认为我完全理解你正在尝试做什么。请告诉我们更多关于你想要达到的效果 - 在这种旋转/翻转效果的现实世界中是否有类比?你是在制作动画呢,还是一次性的永久性操作?我认为,如果你只是glLoadIdentity(),然后旋转,然后翻译,这应该在这种情况下.. – manmal 2012-04-03 11:01:10
这篇文章的第一句话说:“我需要移动一个对象从A点到B点并旋转它它的本地Z轴在同一时间“。实时类比是这样的:我有一架飞机,它的鼻子里有一个螺旋桨。螺旋桨是一个独立的物体,需要围绕其本地z轴旋转,同时与飞机进行平移。我知道如何只翻译螺旋桨,我也知道如何在飞机不移动的时候只旋转螺旋桨,但在同时旋转和平移时,螺旋桨会采取意想不到的轨迹。 – 2012-04-03 17:55:15
会起作用吗?:跟踪某些变量的全局翻译;当绘制“螺旋桨”时:glLoadIdentity,旋转,本地翻译(飞机上螺旋桨的位置),全球翻译(飞机位置)。 – manmal 2012-04-03 18:34:53