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 : 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;
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
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);
}
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 ???