begin process at 2012 05 27 13:33:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > ANIMATION 2D<->3D[DEV C++]

ANIMATION 2D<->3D[DEV C++]


 Information sur la source

Note :
Aucune note
Catégorie :OpenGL Niveau :Débutant Date de création :05/12/2001 Vu / téléchargé :6 320 / 214

Auteur : mastave

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

 Description

Dev C++
f : rotat + - de rouge
g : rotat + - devert
h : rotat + - de bleu
F : rotat + Rouge Complet
G : rotat + Vert  Complet
H : rotat + Bleu Complet

Source

  • #include <Gl/glut.h>
  • #include <stdlib.h>
  • static int rotat = 0;
  • float couleur1 = 1.0;
  • float couleur2 = 1.0;
  • float couleur3 = 1.0;
  • void init(void)
  • {
  • glClearColor(0.0, 0.0, 0.0, 0.0);
  • glShadeModel(GL_FLAT);
  • }
  • void display(void)
  • {
  • rotat = (rotat + 4) % 360;
  • glClear(GL_POLYGON_BIT);
  • glPushMatrix();
  • glColor3f( couleur1, couleur2, couleur3 );
  • glTranslatef(-1.0, 0.0, 0.0);
  • glRotatef((GLfloat) rotat, 0.0, 0.0, -1.0);
  • glTranslatef(1.0, 0.0, 0.0);
  • glPushMatrix();
  • glScalef(2.0, 0.4, 1.0);
  • glutWireCube(1.0);
  • glPopMatrix();
  • glTranslatef(1.0, 0.0, 0.0);
  • glRotatef((GLfloat) rotat, 0.0, 0.0, 1.0);
  • glTranslatef(1.0, 0.0, 0.0);
  • glPushMatrix();
  • glScalef(2.0, 0.4, 1.0);
  • glutWireCube(1.0);
  • glPopMatrix();
  • glPopMatrix();
  • glutSwapBuffers();
  • }
  • void reshape(int w, int h)
  • {
  • glViewport(0, 0, (GLsizei) w, (GLsizei) h);
  • glMatrixMode(GL_PROJECTION);
  • glLoadIdentity();
  • gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
  • glMatrixMode(GL_MODELVIEW);
  • glLoadIdentity();
  • glTranslatef(0.0, 0.0, -5.0);
  • }
  • void keyboard(unsigned char key, int x, int y)
  • {
  • switch (key){
  • case 'f':
  • couleur1 = couleur1 - 0.01;
  • glutPostRedisplay();
  • break;
  • case 'g':
  • couleur2 = couleur2 - 0.01;
  • glutPostRedisplay();
  • break;
  • case 'h':
  • couleur3 = couleur3 - 0.01;
  • glutPostRedisplay();
  • break;
  • case 'F':
  • couleur1 = 1.0;
  • glutPostRedisplay();
  • break;
  • case 'G':
  • couleur2 = 1.0;
  • glutPostRedisplay();
  • break;
  • case 'H':
  • couleur3 = 1.0;
  • glutPostRedisplay();
  • break;
  • default:
  • break;
  • }
  • }
  • int main(int argc, char **argv)
  • {
  • glutInit(&argc, argv);
  • glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
  • glutInitWindowSize(500, 500);
  • glutInitWindowPosition(100, 100);
  • glutCreateWindow("Animation");
  • init();
  • glutDisplayFunc(display);
  • glutReshapeFunc(reshape);
  • glutKeyboardFunc(keyboard);
  • glutMainLoop();
  • return 0;
  • }
#include <Gl/glut.h>
#include <stdlib.h>
static int rotat = 0;
float couleur1 = 1.0;
float couleur2 = 1.0;
float couleur3 = 1.0;
void init(void)
{
   glClearColor(0.0, 0.0, 0.0, 0.0);
   glShadeModel(GL_FLAT);
}

void display(void)
{
   rotat = (rotat + 4) % 360;
   glClear(GL_POLYGON_BIT);
   glPushMatrix();
   glColor3f( couleur1, couleur2, couleur3 );
   glTranslatef(-1.0, 0.0, 0.0);
   glRotatef((GLfloat) rotat, 0.0, 0.0, -1.0);
   glTranslatef(1.0, 0.0, 0.0);
   glPushMatrix();
   glScalef(2.0, 0.4, 1.0);
   glutWireCube(1.0);
   glPopMatrix();

   glTranslatef(1.0, 0.0, 0.0);
   glRotatef((GLfloat) rotat, 0.0, 0.0, 1.0);
   glTranslatef(1.0, 0.0, 0.0);
   glPushMatrix();
   glScalef(2.0, 0.4, 1.0);
   glutWireCube(1.0);
   glPopMatrix();

   glPopMatrix();
   glutSwapBuffers();
}

void reshape(int w, int h)
{
   glViewport(0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
   glTranslatef(0.0, 0.0, -5.0);
}

void keyboard(unsigned char key, int x, int y)
{
   switch (key){
   case 'f':
   couleur1 = couleur1 - 0.01;
   glutPostRedisplay();
   break;

   case 'g':
   couleur2 = couleur2 - 0.01;
   glutPostRedisplay();
   break;

   case 'h':
   couleur3 = couleur3 - 0.01;
   glutPostRedisplay();
   break;

   case 'F':
   couleur1 = 1.0;
   glutPostRedisplay();
   break;

   case 'G':
   couleur2 = 1.0;
   glutPostRedisplay();
   break;

   case 'H':
   couleur3 = 1.0;
   glutPostRedisplay();
   break;

   default:
   break;
}
}

int main(int argc, char **argv) 
{  
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
      glutInitWindowSize(500, 500);
      glutInitWindowPosition(100, 100);
      glutCreateWindow("Animation");
      init();
      glutDisplayFunc(display);
      glutReshapeFunc(reshape);
      glutKeyboardFunc(keyboard);
      glutMainLoop();
      return 0;
}
     

  

 Conclusion

C'est en fait une rotation de 2 cubes et grâce à glClear(GL_POLYGON_BIT), ça laisse la trace derrière, ce qui donne un impression de 2D.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture .::MATRIX::. [DEV C++]
Source avec Zip ANIMATION D'UN CERCLE AVEC TOUCHES + FILM[2D][DEVC++4][GLUT]
FONCTION MENU AVEC FLÈCHES EN MODE TEXTE[DEV C++]
Source avec Zip POLYGONES DIVERSES SANS GLUT[DEV C++...]
(-:FONCTION TABLEAU EN MODE TEXTE![DEV 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 Tylos le 24/01/2002 22:50:37

#include &lt;Gl/glut.h&gt;
je n'est pas cette librairie :/

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



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

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