-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)
我有一個窗口大小(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)
您將需要系統打開屏幕在兩者之間轉換座標的座標爲世界座標。
//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現在應該是您的視口中的適當點。
也許你可以爲視口大小製作補充變量,因爲我確信新手會複製並粘貼他自己的值。讓我們鼓勵適當的編碼,即使它是一個僞代碼:) –
'-1':這個問題很少或沒有研究工作。 –