begin process at 2012 02 09 21:46:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > POLYGONES EN OPENGL [DEV C++]

POLYGONES EN OPENGL [DEV C++]


 Information sur la source

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Niveau :Initié Date de création :31/07/2001 Date de mise à jour :22/12/2001 14:20:23 Vu :7 725

Auteur : mmuller57

Ecrire un message privé
Site perso
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Ce code montre comment créer un polygone (carré, rectangle, triangle, ...), en OpenGL.

Source

  • #include <stdio.h>
  • #include <GL\glut.h>
  • void Chargement(void)
  • {
  • glClearColor(0.0,0.0,0.0,0.0); // La fenêtre est vidée avec la couleur noire |
  • glMatrixMode(GL_PROJECTION);
  • glLoadIdentity();
  • glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
  • }
  • void Affiche_Ligne()
  • {
  • glClear(GL_COLOR_BUFFER_BIT); // On vide la fenêtre |
  • glColor3f(0.0,0.75,0.0); // Définiton de la couleur (RVB) du polygone (ici en vert)|
  • glBegin(GL_POLYGON);
  • /* Création de points pour la fonction GL_POlYGON d'OpenGL.
  • | Un point est créé à l'aide de glVertex3f(x, y, z);
  • | z sert à définir un paramètre selon un plan 3D
  • | il est à chaque fois nul.
  • */
  • glVertex3f(0.25,0.25,0.0); // Coordonnées 1 (x = 0.25, y = 0.25) |
  • glVertex3f(0.75,0.25,0.0); // Coordonnées 2 (x = 0.75, y = 0.25) |
  • glVertex3f(0.75,0.75,0.0); // Coordonnées 3 (x = 0.75, y = 0.75) |
  • glVertex3f(0.25,0.75,0.0); // Coordonnées 4 (x = 0.25, y = 0.75) |
  • glEnd();
  • glFlush();
  • }
  • int main(int argc, char** argv)
  • {
  • glutInit(&argc, argv); //
  • glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  • glutInitWindowSize(300,300);
  • glutInitWindowPosition(200,200);
  • glutCreateWindow("Les polygones en OpenGL et C++ !"); // Création de la fenêtre avec GLUT |
  • Chargement();
  • glutDisplayFunc(Affiche_Ligne); // Sélection de la fonction OpenGL
  • glutMainLoop();
  • }
#include <stdio.h>
#include <GL\glut.h>

void Chargement(void)
 {
    glClearColor(0.0,0.0,0.0,0.0); // La fenêtre est vidée avec la couleur noire |
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
 }

void Affiche_Ligne()
 {
  glClear(GL_COLOR_BUFFER_BIT); // On vide la fenêtre |
 
  glColor3f(0.0,0.75,0.0); // Définiton de la couleur (RVB) du polygone  (ici en vert)| 
    
  glBegin(GL_POLYGON);
  
  /* Création de points pour la fonction GL_POlYGON d'OpenGL.  
  |  Un point est créé à l'aide de glVertex3f(x, y, z); 
  |  z sert à définir un paramètre selon un plan 3D 
  | il est à chaque fois nul. 
  */ 
  
       glVertex3f(0.25,0.25,0.0); // Coordonnées 1 (x = 0.25, y = 0.25) |
       glVertex3f(0.75,0.25,0.0); // Coordonnées 2 (x = 0.75, y = 0.25) |
       glVertex3f(0.75,0.75,0.0); // Coordonnées 3 (x = 0.75, y = 0.75) |
       glVertex3f(0.25,0.75,0.0); // Coordonnées 4 (x = 0.25, y = 0.75) |
       
  glEnd();
  
  glFlush(); 
 }
 
int main(int argc, char** argv)
 {
  glutInit(&argc, argv); // 
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
  glutInitWindowSize(300,300);
  glutInitWindowPosition(200,200);
  glutCreateWindow("Les polygones en OpenGL et C++ !"); // Création de la fenêtre avec GLUT |
  Chargement();
  glutDisplayFunc(Affiche_Ligne); // Sélection de la fonction OpenGL
  glutMainLoop();
 }
    

 Conclusion

-lopengl32 -lglu32 -lglut32


 Sources du même auteur

Source avec Zip PROBABILITÉS ET PROGRAMMATION [ANSI-C++]
[TC++ 3.1] PROTÉGER L'ACCÈS DE VOTRE ORDINATEUR
[DEV C++] MODIFIER LE STYLE D'UNE FENÊTRE DÉJA AFFICHÉE
Source avec Zip Source avec une capture CRYPTAGE SIMPLE [DEV C++]
MANIPULATION DES FICHIERS EN ANSI-C++ [ANSI-C++]

 Sources de la même categorie

Source avec Zip Source avec une capture AFFICHER DES COURBES DE BEZIER par shorzy
Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture CLASSE AVEC OPENGL - OBJETS 3D ET ANIMATIONS par rasta63
Source avec Zip Source avec une capture LETTRES 3D AVEC OPENGL ET QT par opossum_farceur
Source avec Zip CUBE 3D GLUT32 VC++ ET DEVC++ par bobby03

Commentaires et avis

Commentaire de Shaihuld le 01/11/2004 14:50:33

         glVertex3f(0.25,0.25,0.0); // Coordonnées 1 (x = 0.25, y = 0.25) |
         glVertex3f(0.75,0.25,0.0); // Coordonnées 2 (x = 0.75, y = 0.25) |
         glVertex3f(0.75,0.75,0.0); // Coordonnées 3 (x = 0.75, y = 0.75) |
         glVertex3f(0.25,0.75,0.0); // Coordonnées 4 (x = 0.25, y = 0.75) |

pourquoi t' enuyer a te trainer une valeur de z si elle vqut 0 ??? glVertex3f(float x, float y); n' est pas mieu ??

Commentaire de Shaihuld le 01/11/2004 14:54:19

HUM dsl je vien de dire une petite bétise

glVertex2f(-0.5, -0.5); // glVertex2f( GLfloat x, GLfloat y );

au lieu de glVertex3f(float x, float y);

Commentaire de lilington le 12/02/2005 11:45:38

j'ai des erreurs au niveau du linker . par ailleur je n'arrive a lancer aucune sources ni vac devc++4.9.9.0 ni avec vc++6.0
une solution pour moi ?

Commentaire de entity666 le 13/04/2005 17:26:22

en gros j'ai le même probleme que toi... je travaille sous devcpp j'ai bien linke les lib avec -lopengl32 -lglu32 -lglut32
j'ai meme essaye de mettre un -lglu en plus ... mais rien n'y fait ! pas moyen de linker c vraiment bizzare et le log me dit :

Compilateur: Default compiler
Building Makefile: "C:\Documents and Settings\TTy\Mes documents\Mes Projets\C++\dev c++\openGL1\Makefile.win"
Exécution de  make...
make.exe -f "C:\Documents and Settings\TTy\Mes documents\Mes Projets\C++\dev c++\openGL1\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++"  -I"C:/Dev-Cpp/include/c++/mingw32"  -I"C:/Dev-Cpp/include/c++/backward"  -I"C:/Dev-Cpp/include"  

g++.exe main.o  -o "openGL1.exe" -L"C:/Dev-Cpp/lib" -lopengl32 -lglu32 -lglut32 -lglut  

main.o(.text+0xf):main.cpp: undefined reference to `_imp__glClearColor'
main.o(.text+0x21):main.cpp: undefined reference to `_imp__glMatrixMode'
main.o(.text+0x2b):main.cpp: undefined reference to `_imp__glLoadIdentity'
main.o(.text+0x56):main.cpp: undefined reference to `_imp__glOrtho'
main.o(.text+0x71):main.cpp: undefined reference to `_imp__glClear'
main.o(.text+0x87):main.cpp: undefined reference to `_imp__glColor3f'

main.o(.text+0x96):main.cpp: undefined reference to `_imp__glBegin'
main.o(.text+0xaf):main.cpp: undefined reference to `_imp__glVertex3f'
main.o(.text+0xc8):main.cpp: undefined reference to `_imp__glVertex3f'
main.o(.text+0xe1):main.cpp: undefined reference to `_imp__glVertex3f'
main.o(.text+0xfa):main.cpp: undefined reference to `_imp__glVertex3f'
main.o(.text+0x104):main.cpp: undefined reference to `_imp__glEnd'
main.o(.text+0x10b):main.cpp: undefined reference to `_imp__glFlush'
main.o(.text+0x16b):main.cpp: undefined reference to `glutInit'

main.o(.text+0x178):main.cpp: undefined reference to `glutInitDisplayMode'
main.o(.text+0x18d):main.cpp: undefined reference to `glutInitWindowSize'
main.o(.text+0x1a2):main.cpp: undefined reference to `glutInitWindowPosition'
main.o(.text+0x1b2):main.cpp: undefined reference to `glutCreateWindow'
main.o(.text+0x1c7):main.cpp: undefined reference to `glutDisplayFunc'
main.o(.text+0x1cf):main.cpp: undefined reference to `glutMainLoop'

make.exe: *** [openGL1.exe] Error 1

Exécution terminée


En gros je suis en plein dans l'undef ... alors que tout est bien defini dans l'editeur de liens et que glut est parfaitement installé (verifié 5 x de suite l'installation...)
j'ai meme copie la dll glut32.dll dans mon rep windows , windows/system et windows/system32/ les 3 !
alors je vois pas ce que je peux faire de plus là ...

Commentaire de lilington le 22/04/2005 02:25:34

#include <windows.h>
#define GLUT_DISABLE_ATEXIT_HACK
#include <gl/gl.h>
#include <gl/glut.h>
#include <stdlib.h>

ben j'ai trouvé ça par la gentielle d'un gentil espagnol qui luttait avec le francais. grossomodo la deuxieme ligne #difine...  doit être inscrite sous devc++ et ça passe

Commentaire de entity666 le 22/04/2005 11:54:49

ah vi c deja mieux mais je suis encore undef pour glut :


Compilateur: Default compiler
Building Makefile: "C:\Documents and Settings\TTy\Mes documents\Mes Projets\C++\dev c++\openGL1\Makefile.win"
Exécution de  make...
make.exe -f "C:\Documents and Settings\TTy\Mes documents\Mes Projets\C++\dev c++\openGL1\Makefile.win" all
g++.exe main.o  -o "openGL1.exe" -L"C:/Dev-Cpp/lib" -lopengl32 -lglu32 -lglut32 -lglut  

main.o(.text+0x14b):main.cpp: undefined reference to `glutInit'
main.o(.text+0x158):main.cpp: undefined reference to `glutInitDisplayMode'
main.o(.text+0x16d):main.cpp: undefined reference to `glutInitWindowSize'
main.o(.text+0x182):main.cpp: undefined reference to `glutInitWindowPosition'
main.o(.text+0x192):main.cpp: undefined reference to `glutCreateWindow'

main.o(.text+0x1a7):main.cpp: undefined reference to `glutDisplayFunc'
main.o(.text+0x1af):main.cpp: undefined reference to `glutMainLoop'

make.exe: *** [openGL1.exe] Error 1

Exécution terminée


mais le schmilblick a avancé lol

Commentaire de lilington le 29/04/2005 09:59:48

bon test ce code et signale moi les erreures

#include <windows.h>
#define GLUT_DISABLE_ATEXIT_HACK
#include <gl/gl.h>
#include <gl/glut.h>
#include <stdlib.h>

static GLfloat spin = 0.0;
char dir=1;

void myglInit(int L,int l,int pd,int pa,char *name,unsigned int mode );

void Init(void);
void display(void);
void spinDisplay();
void reshape(int w, int h);
void souris(int button,int etat,int x,int y);


int main (int argc,char** argv)
{
    glutInit(&argc,argv);
    myglInit(1024,768,0,0,"rotation",GLUT_DOUBLE|GLUT_RGB);
    Init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMouseFunc(souris);
    glutMainLoop();
    
    return 0;    
}    


void Init(void)
{
    glClearColor(0.0,0.0,0.0,0.0);
    glShadeModel(GL_FLAT);
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(spin,0.0,0.0,1.0);
    glColor3f(0.9,0.9,1.0);
    glRectf(-25.0,-25.0,25.0,25.0);
    glPopMatrix();
    glutSwapBuffers();
}    

void spinDisplay()
{
   if (dir==1)
   {
       spin+=2.0;
       if(spin>360.0)
       spin-=360.0;
   }
   else
     {
       spin-=2.0;
       if(spin <-360.0)
       spin+=360.0;
     }      
    glutPostRedisplay();
}    

void reshape(int w, int h)
{
    glViewport(0,0,w,h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}    


void souris(int button,int etat,int x,int y)
{
    switch (button)
      {
          case GLUT_LEFT_BUTTON :
              if (etat==GLUT_DOWN)
                 dir=1;
                 glutIdleFunc(spinDisplay);              
                 break;
          case GLUT_RIGHT_BUTTON :
              if (etat==GLUT_DOWN)
                 dir=2;
                 glutIdleFunc(spinDisplay);
                 break;

          case GLUT_MIDDLE_BUTTON:
              if (etat==GLUT_DOWN)
                 glutIdleFunc(NULL);
                 break;
      }
}


          
void myglInit(int L,int l,int pd,int pa,char *name,unsigned int mode )
{
    
    glutInitDisplayMode(mode);
    glutInitWindowSize(L,l);
    glutInitWindowPosition(pd,pa);
    glutCreateWindow(name);
}    

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,608 sec (3)

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