OpenGl glutdisplyfunc [Résolu]

Signaler
Messages postés
9
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
30 août 2006
-
Messages postés
9
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
30 août 2006
-
Je debute en openGL(sous DEV-C++). Tous les tutoriaux que je consulte donnent en premier exemple l'affichage d'un polygone dont les sommets sont definis par des valeurs numeriques donnees dans l'implementation de la fonction d'affichage appelee par glutDisplayFunc.
  exemple:


void display(void)
{
   glClear (GL_COLOR_BUFFER_BIT);
  
   glBegin(GL_POLYGON);
   glColor3f (1.0, 0.0, 0.0);
      glVertex3f (0.25, 0.25, 0.0);
   glColor3f (0.0, 1.0, 0.0);   
      glVertex3f (0.75, 0.25, 0.0);
   glColor3f (0.0, 0.0, 1.0);  
      glVertex3f (0.75, 0.75, 0.0);
      //glVertex3f (0.25, 0.75, 0.0);
   glEnd();


   glutSwapBuffers();
}


Comment fournir a l'instruction glVertex3f des parametres qui soient des variables sous la forme glVertex(x,y,z)? c'est variables etant transmises a la fonction par exemple:
  de la fonction main (avec ou sans calcul preliminaire)
  de valeurs issues du clavier ou de la position de la souris.


Merci

6 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
float x = 1.0f;

glVertex3f(x, 0.0f, 0.0f);
Messages postés
9
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
30 août 2006

Reponse a luhtor

Merci mais dans ta solution la valeur de x est fixee a 1.0 dans la fonction void Display.Ce que je recherche, c'est que la valeur de x ne soit pas figée, mais soit passeé a la fonction Display.
de plus je ne vois pas la signification de la lettre f apres les valeurs numeriques.
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
8
Le "f" à la fin du nombre signifie qu'il est de type float, et pas double (comme le "L" qui différencie les long des int).

Pour ton x, tu peut le mettre en variable globale, et le modifier dans les autres fonctions.

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Oue avec glut, ya pas le choix, faut utiliser une variable globale. C'est pas terrible comme système mais bon. C'est glut...
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
8
Ben on est pas vraiment obligé de faire avec des globals, tu fait une classe en pattern Singleton, et tu en hérite pour faire ton application. Dans cette classe, on trouverait toutes les fonctions de display, qui pourraient accèder aux membres de la classe.

Sinon, reste SDL qui est pas mal non plus

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
Messages postés
9
Date d'inscription
mardi 4 juillet 2006
Statut
Membre
Dernière intervention
30 août 2006

Merci.
Avec les variables globales ç'a marche.cela m'a aussi permi d'approfondire les notions de variables globales que je connaissais mal, mais je debute. Quant a la classe pattern singleton, ce sera pour plus tard, mais merci quand meme