我在寫一個基於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