goutbouyo | Salut, Je voudrais récupérer les coordonnées du curseur de ma souris dans ma fenêtre opengl. C'est en 3D mais mon dessin est seulement en 2D (CamX,CamY), et il y a un zoom(zoom). En regardant des posts j'ai trouvé quelques choses. J'ai essayé comme ça : Quand on clique bouton gauche souris
Code :
- case WM_LBUTTONDOWN:
- GetCursorPos(&Cursor);
- glGetIntegerv(GL_VIEWPORT,viewport);
- glGetDoublev(GL_MODELVIEW_MATRIX,mvmatrix);
- glGetDoublev(GL_PROJECTION_MATRIX,projmatrix);
- gluProject ( CamX, CamY, 0, mvmatrix, projmatrix, viewport, &wx, &wy, &wz2 );
- gluUnProject(Cursor.x, Cursor.y ,wz2 ,
- mvmatrix, projmatrix, viewport, &wx, &wy, &wz);
- break;
|
Fonction repaint
Code :
- void RePaint ()
- {
- glClear (GL_COLOR_BUFFER_BIT);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
- gluLookAt (CamX,CamY,zoom,CamX,CamY,0,0,1,0);
- //ici le zoom vaut -500
- //dessine point aux coordonnées souris
- glBegin (GL_POINTS);
- glColor3d (32,1,8);
- glVertex2i (wx,-wy);
- glEnd ();
- glCallList(cube2);
- SwapBuffers (DC);
- }
|
Le point que je dessine par rapport aux coordonés obtenus est toujours en rapport avec la souris mais il est toujours pas mal en dessous et un peu à droite de la souris. Je comprends pas pourquoi ... Pouvez vous m'aider SVP ??? |