Like this问题状态 - 我想将点击(2D)转换为与屏幕上的渲染相关的坐标。我将函数glutMouseFunc
绑定到我的函数(下面),但无法理解传入的x和y - 它们似乎与距离左上角的像素距离有关。openGL 2D鼠标点击位置
我想知道如何在X和Y转换成世界坐标:)
void mouse(int button, int state, int x, int y) {
switch(button) {
case GLUT_LEFT_BUTTON:
printf(" LEFT ");
if (state == GLUT_DOWN) {
printf("DOWN\n");
printf("(%d, %d)\n", x, y);
}
else
if (state == GLUT_UP) {
printf("UP\n");
}
break;
default:
break;
}
fflush(stdout); // Force output to stdout
}
可能重复glUnproject](http://stackoverflow.com/questions/6464232/how-do-i-calculate-the-touch-on-opengl-using-glunproject) – datenwolf 2012-02-03 09:14:46
这是一个在目标C ...并没有具体的答案 - 我认为用C回答这个问题会帮助其他人解决问题呃他们正在使用的平台:) – Wallter 2012-02-04 02:18:05
@Walter:这里的语言没有任何区别。 OpenGL本身并不关心实际处理输入事件,这是所用框架的任务。一个普遍的答案必须考虑到那里的所有框架 - 或根本没有。我以最一般的方式回答了这个问题。此外,问题本身的代码(gluUnproject)也以纯C工作。 – datenwolf 2012-02-04 12:49:01