2013-06-25 235 views
-3

我有一個窗口大小(475,574)。當我使用鼠標點擊事件來獲取屏幕上的位置 我得到範圍(0-475,0-574)。我正在使用glOrthof(-1.5,+1.5,-1.5,+1.5,4.0,15.0) 所以我的問題是如何將通過鼠標事件獲得的點轉換爲3D openGL點。OpenGL座標轉換

EG-我將如何變換(100,200)至(-1.2,0.234,6)

+1

'-1':這個問題很少或沒有研究工作。 –

回答

1

您將需要系統打開屏幕在兩者之間轉換座標的座標爲世界座標。

//calculate ratio 
widthRatio = 3.0/width; // 3.0 = total width of viewport 
heightRatio = 3.0/height; // 3.0 = total height of viewport 

worldX = (screenX * widthRatio) - 1.5; // subtract 1.5 (half of viewport width) to get origin 
worldY = (screenY * heightRatio) - 1.5; 

worldX和worldY現在應該是您的視口中的適當點。

+0

也許你可以爲視口大小製作補充變量,因爲我確信新手會複製並粘貼他自己的值。讓我們鼓勵適當的編碼,即使它是一個僞代碼:) –

相關問題