我正在尝试根据键盘输入沿全局轴旋转对象。我当前的函数有效,但是连续旋转是在旋转轴而不是全局轴上完成的。我知道解决方案涉及操纵矩阵,但是我仍在学习并且不知道该怎么做。
我曾尝试使用glPushMatrix和glPopMatrix,但我认为我在某个地方缺少矩阵乘法。
def Render(screen):
global _current
global _pos
global _angles
m = glGetDouble(GL_MODELVIEW_MATRIX)
glTranslate(*_pos)
glRotatef(_angles[0], 1, 0, 0)
glRotatef(_angles[1], 0, 1, 0)
glRotatef(_angles[2], 0, 0, 1)
_current.Render(screen)
glLoadMatrixf(m)