我在写一个基于openGL和qt的简单应用程序。它创建原始图形(例如三角形),旋转用户可以通过使用三个旋转箱 (坐标:x,y,z)中的一个来更改。问题是局部坐标系。它对于Y轴和Z轴的变化和正常工作,但对X不适用。局部轴X总是与全局轴X重合。因此,当我绕Y轴旋转90'时,轴X和Z平行,因为局部Z发生了变化(如I预计)和本地X没有改变。这里是我的paintGL()函数的片段:OpenGL旋转?
- glRotatef(rot [0],1.0,0,0); glRotatef(rot [1],0,1.0,0); glRotatef(rot [2],0,0,1.0);以及其中,glRotatef(rot [2],0,0,1.0)。
你将需要发布所有相关的代码。事实上,上面的代码很好,但你可能会碰到Gimbal锁。 rot [0],rot [1]和rot [2]的值是什么? – 2011-04-22 20:38:31
你的代码是什么样的?使用glPushMatrix()和glPopMatrix()方法可以解决局部坐标轴转换问题。 查看OpenGL SuperBible第4版的第3章。 – 2am 2013-04-22 05:03:59