使用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