2012-02-17 140 views
3

我正試圖在OpenGl和C++中實現移動和旋轉多邊形。
運動和旋轉沿着XZ平面(僅限2D變換)。
多邊形由一箇中心點和一組頂點定義,該頂點的座標存儲爲偏離中心點的偏移量。
通過簡單地將移動的距離添加到中心點並通過將偏移值添加到中心座標來更新頂點,基於用戶的按鍵在X或Z方向上移動多邊形。
通過使用glRotatef()函數實現相對於中心點的旋轉。
但我需要知道頂點的座標以進行碰撞檢測計算。 有沒有機會直接檢索變換多邊形的頂點座標,而無需自己執行矩陣操作?OpenGl多邊形旋轉

回答

2

有剛剛取出的頂點變換的多邊形的座標任何機會......

OpenGL是不是一個數學庫。它僅用於繪畫。此外,固定功能OpenGL的矩陣操作功能已過時,並且已從OpenGL-3內核中刪除,並且進一步被刪除。

自己沒有執行矩陣操作?

實際上,這是推薦的方法。請記住:OpenGL只是您的繪圖工具,而不是3D渲染器,遊戲模擬引擎,數學幾何工具包。

+0

謝謝,這真的很有幫助。 – itsraining 2012-02-17 18:30:27

2

glRotatef函數創建一個矩陣,該矩陣與堆棧上存在的當前矩陣相乘以獲得屏幕上的旋轉。即使你可以獲得這個矩陣,那麼你仍然必須將它與你的向量相乘來獲得你想要的值,這是你自己做數學時必須做的。就像datenwolf說的那樣,你自己創建一個數學庫會更好,它將執行在2D或3D世界中操縱對象所需的所有必要事情。