begin process at 2010 02 10 02:19:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

OpenGL

 > 

Problème avec les polygones


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec les polygones

samedi 24 juin 2006 à 21:17:04 | Problème avec les polygones

nisaloncaje

Bonjour, j'ai le code source suivant :

#include <GL/glut.h>
#include <stdlib.h>

double a=0,inca=0.1;

/* Prototype des fonctions */
void affichage();
void clavier(unsigned char touche,int x,int y);
void reshape(int x,int y);
void idle();

int main(int argc,char **argv)
{
  /* initialisation de glut et creation
     de la fenetre */
  glutInit(&argc,argv);
  glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
  glutInitWindowPosition(200,200);
  glutInitWindowSize(500,500);
  glutCreateWindow("Numéro 1");

  /* Initialisation d'OpenGL */
  glClearColor(0.0,0.0,0.0,0.0);
 
  glShadeModel(GL_FLAT);

  /* enregistrement des fonctions de rappel */
  glutDisplayFunc(affichage);
  glutKeyboardFunc(clavier);
  glutReshapeFunc(reshape);
  glutIdleFunc(idle);

  /* Entree dans la boucle principale glut */
  glutMainLoop();
  return 0;
}

void affichage()
{

  glClear(GL_COLOR_BUFFER_BIT);
 
  glLoadIdentity();
  glTranslatef(0.0,-0.5,0.0);
  glRotatef(10.0,1.0,0.0,0.0);
  glRotatef(a,0.0,1.0,0.0);

  glBegin(GL_POLYGON);
  glColor3f(0.0,1.0,1.0);
  glVertex3f( 0.0, 0.0, 0.0);
  glVertex3f( 0.1, 0.0, 0.0);
  glVertex3f( 0.1, 0.8, 0.0);
  glVertex3f( 0.0, 0.8, 0.0);
  glVertex3f(-0.2, 0.7, 0.0);
  glVertex3f(-0.2, 0.6, 0.0);
  glVertex3f( 0.0, 0.7, 0.0);
  glVertex3f( 0.0, 0.0, 0.0);
  glEnd();
 
  glFlush();
  glutSwapBuffers();
}

void clavier(unsigned char touche,int x,int y)
{
  switch (touche)
    {
    case 'q' :
    exit(0);
    break;
     
    case 'a':
    glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
    break;
   
    case 'z':
    glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
    break;  
   
    }
}

void reshape(int x,int y)
{
  if (x<y)
    glViewport(0,(y-x)/2,x,x);
  else
    glViewport((x-y)/2,0,y,y);
}

void idle()
{
  a+=inca;
  if (a>360)
    a-=360;

  glutPostRedisplay();
}


Cependant, comme vous pouvez le voir si vous le compiler, quand on est en mode fil de fer, on obtient le chiffre 1 alors que quand on est en mode remplissage, on obtient une autre chose "bizarre"
 Comment faire pour obtenir en mode remplissage un 1 correctement rempli ?

Merci d'avance

NC

dimanche 28 janvier 2007 à 18:05:37 | Re : Problème avec les polygones

tibur

Membre Club
glBegin(GL_POLYGON) est fait pour dessiner un polygone convexe. Or ton 1 n'est pas convexe. Si je me souviens bien, un polygone convexe est un polygone tel que si tu prends 2 points a,b du polygone, le segment AB ne sort pas du polygone.
La solution consiste à decouper ton 1 en triangles.
A+
dimanche 28 janvier 2007 à 18:31:53 | Re : Problème avec les polygones

nisaloncaje

salut !!!

Merci, mais cela fait presque un an que j'avais posté ce message :)


Cette discussion est classée dans : int, void, glvertex3f, gl, glut


Répondre à ce message

Sujets en rapport avec ce message

pb de Z-buffer ac openGL -> Help! [ par Arnaud16022 ] bonjour tt le monde!quelqun pourrait me dire pourqoui le Z-buffer marche pas?pasque le dernier (4ème) triangle dessiné apparait tjs au dessus, meme s' opengl.glut : gestion clavier [ par _Jonathan ] salut a tousvoila, j'arrive pas a utiliser la fonction glutSpecialUpFunc (chui sous devc++).glutSpecialFunc marche.Si kelkun pourrai m'expliker : ---- affiche .tga opengl/c++/glut [ par gimli123 ] Bonjour, ça ne compile pas(je compile avec visual studio.net 2003) et je ne sais pas pourquoi, je suis debutant ça serait sympas de m'aider merci beau Pb de FRONT et BACK buffer avec texture [ par gastoudou ] Bonjour à tous,Je suis en train de faire un projet en OpenGL pour l'école sur un puzzle 2D. Il y a 16 cases mélangées et on doit les remettre à leur p labyrinthe en 3D sytle ecran veille windows [ par gastoudou ] Bonjour à tous,Et oui encore moi pour une question, que dis-je, une mission pour une âme charitable.Je suis en train de faire un labyrinthe en 3D styl les sous fenetres en glut n'en font qu'a leurs tetes [ par whikie ] Bonjour,je voudrais comprendre le placement des glutSubWindow.Voici les infos que j'ai :glutCreateSubWindow La fonction glutCreateSubWindow crée une OpenGL avec GLUT please help [ par mondrone ] Je viens d'essayer de recopier tel quel un tutorial qu'on m'avait donné sur le net. J'arrive à obtenir ce que je suis censé avoir, pendant environ 1/1 Errreur [ par RM50Man ] Mon code ne marche pas: Le compilateur devcpp me met build error 1 #include /* contient déjà et */ #include #include #include void reset Problème avec TGA Loader [ par psykocrash ] Bonjour, J'ai commencé depuis peut la programmation avec OpenGL/GLut et j'ai trouvé la classe TGA Loader de Funto66 mais je n'arrive pas à afficher le Pavé tournant [ par nisaloncaje ] Bonjour, je désirais pour commencer en OpenGL sous devc++ faire un programme simulant un pavé tournant autour de l'axe y : voici mon code source :#inc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales