OpenGl glutdisplyfunc

Résolu
ropars Messages postés 9 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 30 août 2006 - 27 août 2006 à 21:22
ropars Messages postés 9 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 30 août 2006 - 30 août 2006 à 15:57
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
27 août 2006 à 21:28
float x = 1.0f;

glVertex3f(x, 0.0f, 0.0f);
3
ropars Messages postés 9 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 30 août 2006
29 août 2006 à 10:16
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.
3
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
29 août 2006 à 10:59
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.
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 août 2006 à 11:07
Oue avec glut, ya pas le choix, faut utiliser une variable globale. C'est pas terrible comme système mais bon. C'est glut...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
29 août 2006 à 11:15
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.
0
ropars Messages postés 9 Date d'inscription mardi 4 juillet 2006 Statut Membre Dernière intervention 30 août 2006
30 août 2006 à 15:57
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
0
Rejoignez-nous