【发布时间】:2012-01-11 15:00:23
【问题描述】:
我正在尝试使用 glut 函数 glutMouseFunc() 获取鼠标单击 C++/OpengGL 的 3D 坐标。所以我创建了一个这样的函数:
void mouse(int button, int state, int x, int y){
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
mouse_x=x;
mouse_y=y;
}
}
该函数获取鼠标单击的窗口坐标,我将它与 glut 函数 glutMouseFunc() 一起使用,如下所示:
glutMouseFunc(mouse);
我的问题是如何修改鼠标功能给出的坐标,以便在 3D 世界中使用它们。我的确切目的如下:能够查看我是否点击了在世界中绘制的 3D 形状。
[编辑] 将 3D 对象的坐标转换为 2D 窗口坐标,然后将其与鼠标单击的坐标进行比较会更容易吗?
【问题讨论】:
-
与stackoverflow.com/q/2093096/524368相同的问题(原则上)
标签: c++ opengl graphics mouse glut