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
Fonction repaint
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 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;
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 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); }
Je comprends pas pourquoi ...
Pouvez vous m'aider SVP ???
Partager