Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours langage C » Applications langage c

Mini projet de programmation en langage C

Mini projet de programmation en langage C
Participez au vote ☆☆☆☆☆★★★★★
Page suivante pour Télécharger

Mini projet de programmation en langage C

Cet article propose en détaille un mini projet de programmation en langage C pour la réalisation d’un Sphère GLU et Cube.

Vous pourrez télécharger le fichier au format zip il contient le code sources complet.

Extrait du code :

#include <windows.h>                                                                                                                                // Fichier d'en-tête pour Windows

#include <gl\gl.h>                                                                                                                                       // Fichier d'en-tête pour la bibliothèque OpenGL32

#include <gl\glu.h>                                                                                                                                     // Fichier d'en-tête pour la bibliothèque GLu32

#include "NeHeGL.h"                                                                                                                                             // Fichier d'en-tête pour NeHeGL

#include <math.h>                                                                                                                                      // Pour sin et cos, etc.

#pragma comment( lib, "opengl32.lib" )                                                                              // Rechercher OpenGL32.lib lors de la liaison

#pragma comment( lib, "glu32.lib" )                                                                                    // Recherchez GLu32.lib lors de la liaison

#ifndef CDS_FULLSCREEN                                                                                                                                // CDS_FULLSCREEN n'est pas défini par certains

#define CDS_FULLSCREEN 4                                                                                                                // compilateurs. En le définissant de cette façon,

#endif                                                                                                                                                                      // nous pouvons éviter les erreurs

GL_Window*            g_window;

Keys*             g_keys;

// Variables définies par l'utilisateur

GLfloat           xrot;                                                                                                                                                  // Rotation X

GLfloat           yrot;                                                                                                                                                  // Rotation Y

GLfloat           zrot;                                                                                                                                                  // Rotation Z

BOOL Initialize (GL_Window* window, Keys* keys)                                                     // Tout code d'initialisation GL et initialisation de                                                                      

// l'utilisateur vont ici

{

            g_window      = window;

            g_keys            = keys;

            // Début de l'initialisation de l'utilisateur

            glClearColor (0.0f, 0.0f, 0.0f, 0.5f);                                                             // Fond noir

            glClearDepth (1.0f);                                                                                                             // Configuration du tampon de profondeur

            glDepthFunc (GL_LEQUAL);                                                                                                       // Le type de test de profondeur (inférieur ou égal)

            glEnable (GL_DEPTH_TEST);                                                                                                       // Activer le test de profondeur

            glShadeModel (GL_SMOOTH);                                                                                                    // Sélectionnez Smooth Shading

            glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);                             // Définir les calculs de perspective les plus précis

            return TRUE;                                                                                                                                   // Renvoie TRUE (initialisation réussie)

}

void Deinitialize (void)                                                                                                                    // Tout DeInitialization de utilisateur va ici

{

}

void Update (DWORD milliseconds)                                                                                             // Effectuer des mises à jour de mouvement ici

{

            if (g_keys->keyDown [VK_ESCAPE])                                                                              // Est-ce que Échap est pressé?

                        TerminateApplication (g_window);                                                             // Terminer le programme

            if (g_keys->keyDown [VK_F1])                                                                                         // Est ce que F1 a été pressée?

                        ToggleFullscreen (g_window);                                                                                // Basculer en mode plein écran

}

void Draw (void)

{

            glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);                 // Éfface l'affichage et le tampon de profondeur

//********************************************************************************************************************************

            // ...Le code de rendu va ici...

            // Code pour une sphère:

            glLoadIdentity();                                                                                                                             // Réinitialiser la matrice Modelview

                        glTranslatef(0.0f, 0.0f, -5.0f);                                                                      // Déplacez x et y de 0.0 unités et -5.0 unités dans l'écran

                        glColor3f(1.0f, 1.0f, 0.0f);                                                                           // Couleur Jaune pour la Sphère

                        GLUquadricObj *quadric = NULL;

                        quadric = gluNewQuadric();

                        gluQuadricDrawStyle(quadric, GLU_FILL);                                                         // Polygones remplis

                        gluQuadricNormals(quadric, GLU_SMOOTH);                                                     // Mélange lisse et normal (style Gouraud)

                        gluQuadricOrientation(quadric, GLU_OUTSIDE);                        // Normales vers l'extérieur

                        gluSphere(quadric, 1.3, 50, 50);                                                                   // Sphère GLU

                        gluDeleteQuadric(quadric);

            glEnd();                                                                                                                                                        // Terminé de dessiner la Sphère

            // Code pour un Cube

            glLoadIdentity();                                                                                                                             // Réinitialiser la matrice Modelview

                        glTranslatef(0.0f, 0.0f, -5.0f);                                                                      // Déplacez x et y de 0.0 unités et -5.0 unités dans l'écran

                        glRotatef(45.0, 1.0, 0.0, 0.0);                                                                       // Rotation de 45° sur l'axe des X

                        glRotatef(45.0, 0.0, 1.0, 0.0);                                                                       // Rotation de 45° sur l'axe des Y

                        glBegin(GL_QUADS);                                                                                                                   // Commencer à dessiner les quadrilatères

                        glColor3f(0.0f, 1.0f, 0.0f);                                                                           // Couleur:                   Vert

                        glVertex3f(1.0f, 1.0f, -1.0f);                                                                        // Quad Haut:  Point en haut à droite

                        glVertex3f(-1.0f, 1.0f, -1.0f);                                                                                  // Quad Haut:            Point en haut à gauche

                        glVertex3f(-1.0f, 1.0f, 1.0f);                                                                        // Quad Haut:  Point en bas à gauche

                        glVertex3f(1.0f, 1.0f, 1.0f);                                                                         // Quad Haut:  Point en bas à droite

                        glColor3f(1.0f, 0.5f, 0.0f);                                                                           // Couleur:                   Orange

                        glVertex3f(1.0f, -1.0f, 1.0f);                                                                        // Quad Bas:    Point en haut à droite

                        glVertex3f(-1.0f, -1.0f, 1.0f);                                                                                  // Quad Bas:            Point en haut à gauche

                        glVertex3f(-1.0f, -1.0f, -1.0f);                                                                     // Quad Bas:    Point en bas à gauche

                        glVertex3f(1.0f, -1.0f, -1.0f);                                                                                  // Quad Bas:            Point en bas à droite

                        glColor3f(1.0f, 0.0f, 0.0f);                                                                           // Couleur:                   Rouge

                        glVertex3f(1.0f, 1.0f, 1.0f);                                                                         // Quad Façade:            Point en haut à droite

                        glVertex3f(-1.0f, 1.0f, 1.0f);                                                                        // Quad Façade:            Point en haut à gauche

                        glVertex3f(-1.0f, -1.0f, 1.0f);                                                                                  // Quad Façade:           Point en bas à gauche

                        glVertex3f(1.0f, -1.0f, 1.0f);                                                                        // Quad Façade:            Point en bas à droite

                        glColor3f(0.60f, 0.40f, 0.12f);                                                                                 // Couleur:                   Brun

                        glVertex3f(1.0f, -1.0f, -1.0f);                                                                                  // Quad Arrière:Point en haut à droite

                        glVertex3f(-1.0f, -1.0f, -1.0f);                                                                     // Quad Arrière:Point en haut à gauche

                        glVertex3f(-1.0f, 1.0f, -1.0f);                                                                                  // Quad Arrière:Point en bas à gauche

                        glVertex3f(1.0f, 1.0f, -1.0f);                                                                        // Quad Arrière:Point en bas à droite

                        glColor3f(0.0f, 0.0f, 1.0f);                                                                           // Couleur:                   Bleu

                        glVertex3f(-1.0f, 1.0f, 1.0f);                                                                        // Quad Gauche:            Point en haut à droite

                        glVertex3f(-1.0f, 1.0f, -1.0f);                                                                                  // Quad Gauche:          Point en haut à gauche

                        glVertex3f(-1.0f, -1.0f, -1.0f);                                                                     // Quad Gauche:            Point en bas à gauche

                        glVertex3f(-1.0f, -1.0f, 1.0f);                                                                                  // Quad Gauche:          Point en bas à droite

                        glColor3f(1.0f, 0.0f, 1.0f);                                                                           // Couleur:                   Violet

                        glVertex3f(1.0f, 1.0f, -1.0f);                                                                        // Quad Droit: Point en haut à droite

                        glVertex3f(1.0f, 1.0f, 1.0f);                                                                         // Quad Droit: Point en haut à gauche

                        glVertex3f(1.0f, -1.0f, 1.0f);                                                                        // Quad Droit: Point en bas à gauche

                        glVertex3f(1.0f, -1.0f, -1.0f);                                                                                  // Quad Droit:            Point en bas à droite             

            glEnd();                                                                                                                                                        // Terminé de dessiner les quadrilatères

            // La cube moins la sphère = un cube avec un trou au centre de chaque face

            glFlush ();                                                                                                                                                     // glFlush du pipeline de rendu GL

}

Decouvrir ces documents

  • Code source mini projet de compilateur basic en langage C

    Code source mini projet de compilateur basic en langage C

  • Mini projet en langage C pour calculateur de points de championnat en tennis

    Mini projet en langage C pour calculateur de points de championnat en tennis

  • Mini projet calculatrice avec JAVA

    Mini projet calculatrice avec JAVA

  • Mini projet java avec interface graphique et base de données

    Mini projet java avec interface graphique et base de données

  • Application en langage C réalisation d’un mini chat

    Application en langage C réalisation d’un mini chat

  • Support de cours Algorithme les Boucles

    Support de cours Algorithme les Boucles

  • Projet de calculatrice scientifique en langage C

    Projet de calculatrice scientifique en langage C

  • Projet gestion des comptes bancaires en langage C

    Projet gestion des comptes bancaires en langage C

Articles connexes

  • Tutoriel Python : Notions de base
  • Exercices sur la programmation web avec le langage PHP
  • Comment coder pour les débutants
  • Comment élaborer un projet d'établissement scolaire?
  • Comment établir une étude de faisabilité d'un projet informatique ?
  • Comment rédiger une lettre de motivation pour un poste de chef de projet digital?
  • Exercice Visual Basic : Mini application de gestion de petit commerce
  • Ms Project : comment créer un nouveau projet
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02