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

Mathématiques Discussion :

Rotation d'un cube avec un quaternion


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Points : 78
    Points
    78
    Par défaut Rotation d'un cube avec un quaternion
    Bonjour !

    Je suis en train d'implanter un simulateur en utilisant les fonctionnalités de physx. Pour la partie rendu j'ai plusieurs rendus offline, et à terme une visu opengl. Ce qui m'intéresse aujourd'hui est le rendu avec povray.

    Un cube en povray est constitué d'un point min et max et éventuellement d'une rotation ou autres transformations classiques. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    box{
            <-1.40704e-28,4.59163e-41,5.9133e-39>,<0,1,1.10424e-38>
     	 pigment{
    		 color rgb <0,0,1>
     	 	 transmit .7 
     	} 
            rotate<0,0,0>
    }
    Avec PhysX, ma boîte est créée de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        PxRigidDynamic *box = mPhysics->createRigidDynamic(PxTransform(pos));
        PxBoxGeometry  *bg  = new PxBoxGeometry(dim.x,dim.y,dim.z);
        box->createShape(*bg,*(mPhysics->createMaterial(0.5,0.5,0.45)));
        box->setLinearVelocity(vel);
        mScene->addActor(*box);
        actors.push_back(box);
    La boîte est représentée par un centre, et des dimensions.
    Avec transform comportant d'une part la position de la boîte dans l'espace (PxVec3 p), et d'autre part un quaternion pour définir son orientation (PxQuat q).

    Ma question est la suivante :

    Comment orienter ma boîte correctement dans le rendu povray malgré la différence de représentation de l'objet, et malgré la différence de représentation des rotations ?

    Merci beaucoup !

    Muska17

  2. #2
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    a priori il faut que tu fasses les conversions des représentations de transformations;

    je commencerais par extraire la composante de translation, puis celle de rotation.
    Pour la rotation, il faut convertir un quaternion vers 3 angles d'Euler (je suppose que c'est la représentation de PovRay ?). Le plus simple est peut-etre de passer par une matrice de rotation 3x3 classique. Tu trouves les formules assez facilement sur google.

    Après, il faut convertir le "centre" en "point minimum". La je crois qu'il va falloir calculer la taille de l'objet apres transformation, pour pouvoir decaler pa position du point de depart.

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive, merci pour les pistes de recherche !

    Je posterai mon code une fois fini si ça peut intéresser d'autres personnes.

    A+

    Muska17

Discussions similaires

  1. rotation avec des quaternions
    Par tiloup367 dans le forum Mathématiques
    Réponses: 2
    Dernier message: 09/11/2010, 13h17
  2. Rotation d'une sphère avec axes fixes
    Par jmb462 dans le forum OpenGL
    Réponses: 10
    Dernier message: 09/05/2007, 10h44
  3. [DX9][C#] Affichage cube avec vertex buffer
    Par lancer83 dans le forum DirectX
    Réponses: 43
    Dernier message: 30/06/2006, 12h16
  4. Cube avec 8 Vertex + textures
    Par mister3957 dans le forum DirectX
    Réponses: 2
    Dernier message: 23/11/2005, 23h31
  5. Decision Cube avec Oracle
    Par Leclair2000 dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/11/2004, 15h38

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