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

OpenGL Discussion :

matrices de rotation


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Par défaut matrices de rotation
    hello.

    J'esseye de comprendre les matrices mais j'ai du mal !
    J'esseye d'immiter cette fonction avec les matrices: glRotatef(zrot,0.0f,0.0f,1.0f);

    J'ai donc fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    GLfloat N[16]={
      cos(zrot), -sin(zrot), 0, 0,
      sin(zrot), cos(zrot),	0, 0,
      0, 0, 1, 0,
      0, 0,0, 1
    };
     
    glMatrixMode(GL_MODELVIEW);
    glMultMatrixf(N);
    glLoadIdentity();
    zrot+=0.1f;
    Depuis que j'ai mis se code à la place de glRotatef, mon cube à disparu de l'écran...pourquoi ? merci.

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    ben heu... si tu charge une matrice et que tu fait glLoadIdentity juste apres, forcement ca ne sert a rien... normalement le glLoadIdentity doit etre placé avant le glMultMatrix()
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Par défaut
    Oups....voila j'ai rechangé mais je n'ait toujours rien qui s'affiche.

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    un autre truc : il me semble que tu a rempli ta matrice en row major (ligne par ligne) alors qu'openGL est en column major (colonne par colonne)

    mais en même temps, je n'ai pas la formule des matrice de rotation sous les yeux donc je peut me tromper
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 63
    Par défaut
    Et pour faire passer ma matrice en column major, je doit juste inverser le signe des 2 sin(zrot) ? J'ai déjà esseyé et toujours rien

    NB : je me suis basé sur ça pour la matrice de rotation : http://jeux.developpez.com/faq/matqu...formations#Q30

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    ton code devrais donc plutot resembler à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    GLfloat N[16]={
      cos(zrot),sin(zrot),0,0,
      -sin(zrot),cos(zrot),0,0,
      0,0,1,0,
      0,0,0,1
    ];
    dans ton code, tu a remplie la matrice ligne par ligne, alors qu'en openGL il faut la remplir colonne par colonne.
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Decomposition matrice de rotation
    Par harsh dans le forum Mathématiques
    Réponses: 5
    Dernier message: 24/09/2010, 15h16
  2. Réponses: 4
    Dernier message: 08/08/2006, 13h10
  3. angle d'euler et matrice de rotation
    Par mat_monroe dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 02/05/2005, 11h06
  4. [Débutant]maths et matrices de rotation ...
    Par ptidrone dans le forum DirectX
    Réponses: 7
    Dernier message: 21/07/2004, 17h00
  5. matrice et rotation
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/12/2002, 17h59

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