-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':这个问题很少或没有研究工作。 –