IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

probleme OpenGL rotations


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut probleme OpenGL rotations
    Bonjour tout le monde, dans le cadre d'un projet d'informatique en openGL je dois faire un mini systeme solaire (soleil terre lune), mon probleme est que je n arrive pas a faire tourné la terre autour du soleil et la lune autour de la terre, j'arrive a les faire tourner mais devant le soleil pour la terre et devant la terre pour la lune. Ce probleme me bloque énormement dans l'avancement de mon projet
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
     
    /* inclusion des fichiers d'entete Glut */
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <GL/glut.h>
    #include <math.h>
     
    int a=0,b=0,c=5;
    int inca=2,incb=2,incc=2;
     
    void display();
    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(10,10);
      glutInitWindowSize(900,900);
      glutCreateWindow("Systeme solaire(lune,terre,soleil)");
     
      /* Initialisation d'OpenGL */
      glClearColor(0,0,0,0);
     
     
     
     
      /* enregistrement des fonctions de rappel */
      glutDisplayFunc(display);
      glutInitDisplayMode (GLUT_DOUBLE); 
      glutIdleFunc(idle);
      glEnable(GL_DEPTH_TEST);
     
     
      /* Entre dans la boucle principale glut */
      glutMainLoop();
      return 0;
    }
    //Dessin des objets
    void display()
    {
     
     
     
      // position lumiere
      static GLfloat posi[4] = {5.0, 2.0, 9.0, 0.0};
     
      //couleur des planetes
      //static GLfloat moon[4] = {0.7, 0.7, 0.7, 0.8};	// grisatre
      static GLfloat yell[4] = {1.0, 0.9, 0.3, 1.0};	// jaune orange
      static GLfloat blue[4] = {0.5, 0.8, 1.0, 1.0};	// bleu "terre"
     
     
      // reglage lumiere
      glLightfv(GL_LIGHT0, GL_POSITION, posi);
      glEnable(GL_CULL_FACE);
      glEnable(GL_LIGHTING);
      glEnable(GL_LIGHT0);
      glEnable(GL_DEPTH_TEST);
      /* effacement de l'image avec la couleur de fond */
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      glLoadIdentity();
     
     
     
      /* Dessin des objets */
      //soleil
      glPushMatrix();
      glTranslated(0,0,0);
      glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, yell);
      glutSolidSphere(0.3,50,50);
      glPopMatrix();
     
      //terre
      glPushMatrix();
      glRotatef(b,0,1,0);//rotation autour du soleil
      glTranslated(0.8,0,0);
      glRotatef(a,0,1,0); //rotation sur elle même
      glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);  
      glutWireSphere(0.1,20,20);
     glPopMatrix();
     
     
     
     /* //lune
     
      glPushMatrix();
      glTranslated(0.8,0,0);
      glRotatef(a,0,1,0);//rotation autour de la terre 
      glTranslated(0.15,0,0);
      glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, moon);
      glutWireSphere(0.03,10,10);
      glPopMatrix();*/
     
      /* on force l'affichage du resultat */
      glFlush();
      glutSwapBuffers();
      glutPostRedisplay();
     
    }
     
     
    void idle()
    {
      a+=inca;
      if (a>360)
        a-=360;
      b+=incb;
      if (b>360)
        b-=360;
      glutPostRedisplay();
    }
    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    up

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/04/2007, 16h16
  2. Petit Probleme de rotation
    Par auka dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2006, 15h10
  3. [numarray] probleme de rotation .
    Par parp1 dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 11/04/2006, 21h39
  4. Probleme de rotation...
    Par Daedar dans le forum OpenGL
    Réponses: 3
    Dernier message: 29/12/2005, 11h03
  5. Probleme de rotation de bannieres
    Par bug33 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/09/2005, 20h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo