[問題] opengl旋轉的問題
已經爬文 且也google好幾天了T-T
不過好像都跟我的問題不太一樣
現在是要做一個跟這個一模一樣的東西
http://houseof3d.com/pete/applets/facet/three.html
我的做法大概是 按上下左右時
glPushMatrix
if 左
glRotatef- 沿z軸轉
if 右
.....
glGetFloatv(GL_MODELVIEW_MATRIX, &x)
glPopMatrix
在其它函式會用x把圖render出來
現在的問題是 因為用glRotatef時 軸會跟著轉
而因為上次轉轉的狀態要維持著
所以每次render圖時 都會要做一次上面描述的函式
所以當下次按 上下左右時 當時的z軸已經不是向左轉的功能了
而是轉過的z軸
有想過解決方法是 用現在轉過的軸來算出要對x,y,z各轉幾度
來達到向左轉的功能 可是好像很難做
這個有沒有比較好的方法
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.133.47
推
07/24 19:27, , 1F
07/24 19:27, 1F
現在的問題比較是說
ex: 先對x轉 +20 再對z轉 +20 此時的z已經跟原來不一樣
雖然有用push跟pop 可是因為下次進來的時候 會先做一次對x轉 +20 此時z軸還是會變掉
因為x,z各轉20的話 先對哪一軸轉是有差的
而如果寫死的話(也就是只把角度一直累加上去) 就會變成只有一種順序(ex:先x後z)
所以我是用一個陣列記得說 從最開始到現在 每一次的動作是多少
而每次render的時候 就會把陣列裡的動作做一次(為了維持剛剛轉的狀態)
而這樣就會變成想做下一個動作時 軸還是被轉掉
不好意思描述的好像有點複雜T-T
※ 編輯: locationc 來自: 114.44.133.47 (07/24 19:44)
推
07/24 19:47, , 2F
07/24 19:47, 2F
→
07/24 19:47, , 3F
07/24 19:47, 3F
推
07/24 19:54, , 4F
07/24 19:54, 4F
→
07/24 19:55, , 5F
07/24 19:55, 5F
→
07/24 20:02, , 6F
07/24 20:02, 6F
推
07/24 20:08, , 7F
07/24 20:08, 7F
→
07/24 20:11, , 8F
07/24 20:11, 8F
推
07/25 02:06, , 9F
07/25 02:06, 9F
推
07/25 02:45, , 10F
07/25 02:45, 10F
→
07/25 02:46, , 11F
07/25 02:46, 11F
推
07/25 09:05, , 12F
07/25 09:05, 12F
推
07/25 11:59, , 13F
07/25 11:59, 13F
→
07/25 12:01, , 14F
07/25 12:01, 14F
推
07/25 17:44, , 15F
07/25 17:44, 15F
→
07/25 17:45, , 16F
07/25 17:45, 16F