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 :

Effectuer une rotation sur deux axes


Sujet :

OpenGL

  1. #1
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut Effectuer une rotation sur deux axes
    Bonsoir.
    J'aimerai tourner autour de mes axes X et Y de base.
    Mon problème est qu'après la 1ère rotation, le repère bouge et je ne sais pas comment faire la 2ème rotation par rapport à ma position de départ.
    Si quelqu'un pouvait m'aider .

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Points : 545
    Points
    545
    Par défaut
    Salut !

    Tu donnes peu d’information, je peux qu’en déduire que tu travail sur la pile de matrice MODELVIEW et les fonctions glRotate.

    Pour les orientations il est souvent plus aisé d’utiliser les Quaternions : la représentation mathématique d’un axe et un angle de rotation.

    Il existe une représentation matricielle d’une rotation d’angle à partir d’un axe (x, y, z) :



    avec



    Puisque tu débute en OpenGL je vais me permettre de te déconseiller la manipulation des piles matricielles, car leurs utilisations sont devenues obsolètes depuis le passage au pipeline programmable.
    Lorsque l’on débute avec OpenGL, on est vite perdu avec ces différentes versions et ces différentes extensions. Le plus simple est de limiter ton apprentissage sur le périmètre spécifié par la norme OpenGL ES 2.0 , cela te permettra d’écrire des application 3D très portable et de bénéficier de l’accélération matériel !

  3. #3
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut
    Bonjour. Merci pour votre réponse.
    En effet je débute et j'utilise glRotate.
    Pensez vous qu'avec cette méthode je peux faire une rotation d'angle A sur l'axe y par exemple, et ensuite une rotation d'angle B sur mon ancien axe x ? C'est vraiment cela mon problème car le rotate bouge le repère et donc je n'arrive pas à faire ma deuxième rotation comme je le souhaite.
    Je vais lire ce que vous m'avez envoyez en attendant merci.

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 816
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 816
    Points : 7 648
    Points
    7 648
    Par défaut
    Salut,

    Citation Envoyé par zhouyu Voir le message
    Pensez vous qu'avec cette méthode je peux faire une rotation d'angle A sur l'axe y par exemple, et ensuite une rotation d'angle B sur mon ancien axe x ?
    A mon avis, si tu as du mal à gérer les rotations autour d'un axe, ça ne va pas être direct avec un quaternion...

    Citation Envoyé par zhouyu Voir le message
    C'est vraiment cela mon problème car le rotate bouge le repère et donc je n'arrive pas à faire ma deuxième rotation comme je le souhaite.
    Calcule la transformée de ton ancien axe x après transformation par la rotation autour de y, et fait ta rotation autour de ce nouvel axe transformé.

  5. #5
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut
    Merci je vais chercher de ce coté.

  6. #6
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut
    Finalement j'utilise gluLookAt et je calcul mes x,y,z de la camera en convertissant mes coordonnées sphériques.
    Pour ma part le sujet est clos merci pour votre aide.

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

Discussions similaires

  1. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 10h03
  2. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 11h54
  3. [SVG] Effectuer une rotation d'un texte type 'tspan'
    Par M4v3rick dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 21/06/2005, 19h33
  4. Réponses: 1
    Dernier message: 28/03/2005, 13h33
  5. Pb : malloc qui marche une fois sur deux .... ?
    Par guillaume_pfr dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 10h52

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