[C / Glut] Tracé de segment

Tracé de segment [C / Glut] - C - Programmation

Marsh Posté le 10-05-2006 à 14:13:04    

Bonjour,
 
j'ai un petit probleme avec un bout de code d'un programme en C utilisant la librairie GLUT pour l'affichage
le but en fait est d'afficher des segments avec 2fonctions, j'ai beau essaye mais ca ne marche pas, je voudrai donc savoir si qulq'un du Forum pourrait m'aider à resoudre ce probleme assez urgent :
voila le code :
 

Code :
  1. // (x1,y1) et (x2,y2) sont 2points
  2. void dessineSegment(float x1, float y1, float x2, float y2) {
  3.   glLineWidth(3.0) ;
  4.   glBegin(GL_LINES) ;
  5.   glVertex2fx1,y1);
  6.   glColor3f(0,1,0) ;
  7.   glVertex2f(x2,y2);
  8.   glColor3f(1,0,1) ;
  9.   glEnd() ;
  10.   glLineWidth(1.0) ;
  11. }
  12. void display(float x1, float y1, float x2, float y2) {
  13.   glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  14.   glPushMatrix();
  15.   dessineSegment(x1,y1,x2,y2) ;
  16.   glPopMatrix();
  17.   glFlush();
  18.   glutSwapBuffers() ;
  19. }


 
or cela ne m'affiche pas le segment alors que ca marche bien de cette maniere :
 

Code :
  1. void display(void) {
  2. glClearColor(0.0F,0.0F,0.0F,0.0F) ;
  3. glClear(GL_COLOR_BUFFER_BIT) ;
  4. glColor3f(1.0F,1.0F,1.0F) ;
  5. glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0) ;
  6. // Dessin du Segment
  7. glBegin(GL_LINES) ;
  8. glVertex2f(0.5,0.5) ;
  9. glVertex2f(0.5,-0.5) ;
  10. glEnd() ;
  11. glFlush() ;
  12. }


 
mais avec le deuxieme code, je ne peux choisir mes points même en donnant des arguments à la procedure display
 
En vous remerciant d'avance


Message édité par eljoundi le 10-05-2006 à 21:55:03
Reply

Marsh Posté le 10-05-2006 à 14:13:04   

Reply

Marsh Posté le 10-05-2006 à 14:51:05    

pb de matrice/repère/Z.
 
dans le premier cas tu clear le ZBuffer, et tu pousses des vecteurs 2D.
 
dans le deuxième cas qui marche tu clear uniquement le backbuffer (color), et tu fais un glOrtho() pour annuller la mise en perspective.
 
il faut que décide de ce que tu veux faire:
1) avec perspective ou sans ?
2) avec ZBuffer ou sans ?

Reply

Marsh Posté le 10-05-2006 à 19:09:07    

En fait, je veux juste avoir une fonction qui me permettra de tracer un segment tout simplement et qui prend en argumenbt les cooedonnées des points
c'est tout, et n'ayant jamais utilise GLUT j'ai trouve les fonction que j'ai mises dans mon premier poste sur le net et en les adaptant à mon code, elle marchaient pas
 
HELP !!!!!!!!!!!!!

Reply

Marsh Posté le 10-05-2006 à 19:58:22    

j'avais pas vu le:
 

Citation :

mais avec le deuxieme code, je ne peux choisir mes points même en donnant des arguments à la procedure display


 
heu tu sais programmer en C ?

Reply

Marsh Posté le 10-05-2006 à 21:01:55    

bjone a écrit :

j'avais pas vu le:
 

Citation :

mais avec le deuxieme code, je ne peux choisir mes points même en donnant des arguments à la procedure display


 
heu tu sais programmer en C ?


 
oui, mais quand j'ai modifie les fonctions, elles marchent pas  :(  
je voudrais juste savoir ce qu'il faut rectifier ici pour que ces fonctions marchent bien et m'affichent le segment entre les points (x1,y1 et (x2,y2)

Code :
  1. // (x1,y1) et (x2,y2) sont 2points
  2. void dessineSegment(float x1, float y1, float x2, float y2) {
  3.   glLineWidth(3.0);
  4.   glBegin(GL_LINES);
  5.   glVertex2fx1,y1);
  6.   glColor3f(0,1,0);
  7.   glVertex2f(x2,y2);
  8.   glColor3f(1,0,1);
  9.   glEnd();
  10.   glLineWidth(1.0);
  11. }
  12. void display(float x1, float y1, float x2, float y2) {
  13.   glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  14.   glPushMatrix();
  15.   dessineSegment(x1,y1,x2,y2);
  16.   glPopMatrix();
  17.   glFlush();
  18.   glutSwapBuffers();
  19. }


 
je galere un peu car je n'ai jamais utilise cette librairie  :(


Message édité par eljoundi le 10-05-2006 à 21:03:08
Reply

Marsh Posté le 11-05-2006 à 00:19:54    

il doit te manquer le glortho()

Reply

Marsh Posté le 11-05-2006 à 01:30:20    

Je perds espoir franchement, j'ai essayé de combiner les deux fonction en une seule en ajoutant le glortho() , mais ca ne marche toujours pas

Reply

Marsh Posté le 11-05-2006 à 09:34:36    

eljoundi a écrit :

Je perds espoir franchement, j'ai essayé de combiner les deux fonction en une seule en ajoutant le glortho() , mais ca ne marche toujours pas


lis quelques tutoriel sur  
http://nehe.gamedev.net/, ca t'aidera, y'a des tutoriels pour la 2D notamment.
 
De plus , tu gagnera quelques notions d'opengl, ce qui ne semble pas superflu.

Reply

Marsh Posté le 11-05-2006 à 13:58:30    

Merci à bjone et _darkalt3_ pour votre aide, j'ai enfin réussi à resoudre le probleme et tracer ma courbe comme je veux  :)  
il fallait en fait injecter toutes les fonctions de dessin dans Display en declarant des variables globales  :)
 
 
[edit : pseudo recitfié  ;)  ]

Message cité 1 fois
Message édité par eljoundi le 11-05-2006 à 16:22:47
Reply

Marsh Posté le 11-05-2006 à 14:04:06    


 [:_darkalt3_]  
 
 
de rien :jap:

Reply

Marsh Posté le 11-05-2006 à 14:04:06   

Reply

Marsh Posté le 11-05-2006 à 14:59:17    

mé heu :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed