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

SDL Discussion :

[OpenGl] Problème rotation d'un rectangle


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 34
    Points
    34
    Par défaut [OpenGl] Problème rotation d'un rectangle
    Bonjour, je suis à mes balbutiements dans l'OpenGL...

    Je suis entrain de suivre un cours mais la disposition du code reste un peu flou et je n'obtient pas de résultat en compilant mon programme.

    Voici ma source :

    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
    #include <iostream>
    #include <SDL/SDL.h>
    #include <GL/gl.h>
    #include <GL/glu.h>
     
    int main (int argc, char *argv[]) {
     
        SDL_Init(SDL_INIT_VIDEO);
     
        SDL_Surface *ecran = SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
     
        SDL_Flip(ecran);
     
        bool c = true;
        SDL_Event e;
     
        while(c) {
            SDL_WaitEvent(&e);
            switch(e.type) {
                case SDL_QUIT :
                    c = false;
                    break;
            }
     
            glClear(GL_COLOR_BUFFER_BIT);
     
            glMatrixMode(GL_PROJECTION);
            glLoadIdentity();
     
            glBegin(GL_QUADS);
     
                glColor3ub(0, 255, 0);
                glVertex2d(-0.8, -0.8);
                glVertex2d(-0.8, -0.6);
                glVertex2d(-0.4, -0.6);
                glVertex2d(-0.4, -0.8);
     
     
                glPushMatrix();
                glRotated(45, 0, 0, 1);
                glColor3ub(0, 0, 200);
                glVertex2d(-0.6, -0.6);
                glVertex2d(-0.6, -0.5);
                glVertex2d(0.3, -0.5);
                glVertex2d(0.3, -0.6);
                glPopMatrix();
     
            glEnd();
     
     
            glFlush();
            SDL_GL_SwapBuffers();
     
        }
     
        SDL_Quit();
        return 0;
    }
    La seule chose qui apparait ce sont mes 2 rectangles mais le deuxième à qui j'ai effectué une rotation n'as pas voulu bouger...

    Quel est ma faute ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu travailles sur la matrice de projection, fais plutôt en sorte que ce soit la matrice modelview qui soit active lorsque tu fais tes transformations.

    Vu ton programme ça ne devrait pas changer grand chose, mais ce sera déjà une bonne habitude de prise.

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Je ne suis pas un expert en OpenGL mais cela me semble pas une bonne idee de mettre des glRotatef dans un glBegin/glEnd.

    Ajoute un glEnd, fais ta rotation et recommence un glBegin...

    Jc

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. [OpenGL] problème de rotation 3D
    Par ReiVon dans le forum OpenGL
    Réponses: 3
    Dernier message: 11/04/2005, 09h47
  3. [OpenGL] Problème d'éclairage
    Par Dev48 dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/02/2005, 09h32
  4. [OpenGL] Problème de Vitesse d'éxécution
    Par stick059 dans le forum OpenGL
    Réponses: 9
    Dernier message: 19/11/2004, 13h57
  5. Rotation d'un rectangle autour du centre de gravité
    Par bucheron dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 22/06/2004, 11h01

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