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