Re: [程式] 關於openGL球滾動的問題

看板GameDesign (遊戲設計)作者 (我要加入劍道社!)時間16年前 (2008/10/04 09:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《liamgallager (絕對可能)》之銘言: : 小弟想畫一顆球在地上滾動 : 球會隨著移動方向跟著轉動 : 小弟是這樣寫的 : glRotatef(zrot,1.0f,0.0f,0.0f); : glRotatef(xrot,0.0f,0.0f,1.0f); : gluSphere(quadratic,0.2f,32,32); : 就是先根據z方向的移動速度來轉動球 : 然後再根據x方向的移動速度來轉動球 : 在最一開始的時候如果只根據x方向移動,球的轉動是正常的 : 可是當z方向的移動出現之後,球的旋轉方向似乎被打亂了 : 反之,一開始從z方向移動正常,x方向移動出現後,轉動也被打亂 : 請問各位大大我該如何讓球滾動正常呢? : 我用的介面是OpenGL : 謝謝@@ 你的作法之所以會有問題 是因為「旋轉」並不是一項可前後交換的運算 「先以 X 軸旋轉 90 度,再以 Z 軸旋轉 45 度」 和「先以 Z 軸旋轉 45 度,再以 X 軸旋轉 90 度」 結果是完全不同的 (你可以自己拿顆球轉看看) 正確的作法是把這顆球的旋轉用矩陣存起來 每次轉動的時候去更新這個矩陣 最後在 render 前把這個矩陣乘上 model-view matrix 即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.163.153.8 ※ 編輯: littleshan 來自: 218.163.153.8 (10/04 13:42)
文章代碼(AID): #18viZ07y (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #18viZ07y (GameDesign)