Callback pour la gestion de la souris avec GLUT
Bonjour,
j'ai une fonction a écrire avec les GLUT, voici l'énoncé:
"Trouvez sur Internet comment on redéfinit le ”callback” pour la gestion de la souris avec GLUT. Ecrivez une fonction qui détermine dans quelle case du damier la souris a cliqué. Affichez le résultat dans la console (avec printf). Dessinez un cercle dans la case qui a été cliquée"
J'ai déjà mon damier et pour le callback souris, j'ai cherché j'ai trouvé qu'on devait utiliser cette fonction :
glutMouseFunc() : définit la fonction à appeler lorsqu'un bouton de la souris est appuyé ou relâché. La fonction utilisateur doit avoir les paramètres (int button, int state, int x, int y), où button peu valoir GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, ou GLUT_RIGHT_BUTTON, state vaut GLUT_UP ou GLUT_DOWN, et x et y sont les coordonnées de la souris par rapport à le fenêtre.
Donc je sais que je dois créer une fonction avant mon main, elle doit utiliser les paramètres button, state, x et y et que je devrais utiliser Mon damier dedans. Or, je ne sais pas comment commencer, ni ce qu'elle doit contenir.
voici mon damier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| void carre(float x, float y,float taille)
{
glBegin(GL_POLYGON);
glVertex2f(x-taille/2,y+taille/2);
glVertex2f(x+taille/2,y+taille/2);
glVertex2f(x+taille/2,y-taille/2);
glVertex2f(x-taille/2,y-taille/2);
glEnd();
}
void display(void)
{
glClear( GL_COLOR_BUFFER_BIT);
int i,j;
for(i=0; i<10; i=i+2)
{
for(j=0; j<10; j=j+1)
{
glColor3f(1.0,0,0);
carre(1.0/2+i+j%2,1.0/2+j,1);
glColor3f(0,0,1);
carre(1.0/2+i+(j+1)%2,1.0/2+j,1);
}
}
glFlush();
} |
Si quelqu'un pouvait m'aider, j'apprécierai vraiment
mercii!!