Merhaba
Aldığınız kordinatlar pencereye ait kordinatlar, gerçek kordinatları bulmak için
gluUnProject(..) fonsiyonunu kullanmız gerekiyor.Kullanımı ek bilgi gerektiriyor bu yüzden aşağıda bir örnek yazdım.Umarım işinize yarar.
PHP Kodu:
void OpenglMouse(int x,int y ,double * s_x,double * s_y ,double * s_z)
{
GLdouble m[16];
GLdouble p[16];
int ekran_kordinati[4];
y=(ekran_kordinati[3]-y-1);
glGetIntegerv(GL_VIEWPORT, ekran_kordinati);
glGetDoublev(GL_MODELVIEW_MATRIX, m);
glGetDoublev(GL_PROJECTION_MATRIX, p);
gluUnProject((GLdouble)x,
(GLdouble)y,
0.0,
m,
p,
ekran_kordinati,
s_x,
s_y,
s_z);
return ;
}
void mouse(int button, int state, int x, int y)
{
double sx=0;
double sy=0;
double sz=0;
OpenglMouse(x,y,&sx,&sy,&sz);
if(button == GLUT_LEFT_BUTTON and state == GLUT_DOWN)
{
glTranslated(sx,sy,0);
glutPostRedisplay();
}
}
Bookmarks