2013-06-25 157 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

也许你可以为视口大小制作补充变量,因为我确信新手会复制并粘贴他自己的值。让我们鼓励适当的编码,即使它是一个伪代码:) –

相关问题