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

Algorithmes et structures de données Discussion :

[3D] gérer la rotations&translations


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut [3D] gérer la rotations&translations
    Bonjour à tous

    Voilà je developpe un petit moteur 3D, mais en partant de rien. Je m'occupe de faire la base du moteur. Je commence à pas mal m'en sortir, mais voilà, je rencontre un problème que je comprend, mais que je n'arrive pas à résoudre.

    En fait j'ai mes vertices qui sont définis par rapport à mon objet (coordonnées relatives). J'ai un buffer de matrices (un peut genre celui de l'openGL je pense) qui me permet de gérer les matrices de la camera et de la matrice de translation passant les vertices ds coords relatives au coords du monde.

    Mes problème est que je ne vois pas comment gérer une rotation de l'objet sur lui meme EN MEME TEMPS qu'une translation. Car lorsque je fais la translation je met à jour le vecteur position de l'objet, mais lorsque je fais ceci lors d'une rotation, je fais tourner la position de mon object autours du point 0,0,0 du monde. Ce qui fait qu'il ne tourne plus sur lui meme....

    Je suis pas sur d'etre tres clair.... En gros mon probleme se résume à : comment gérer les rotations autours de l'objet lui meme, autours d'un point de l'univers, tout en effectuant une translation.

    Merci

  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 : 39
    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
    Il suffit de ramener l'objet en (0, 0, 0) avant de le tourner, puis de le remettre là où il était avant.

    Typiquement la translation s'effectue en dernier : après les rotations et les homothéties.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Salut Loulou
    en effet j'y avais pensé aussi, seulement la façon dont j'ai structurer mon code ne me permet pas de faire cela facilement...
    En fait je n'applique pas la rotation a un objet, mais un group de transformations a un groupe d'objets. Mais cela dit je pense que je vais rajouter ces matrices de translations au moment de la boucle de rendu (qd j'applique mon groupe de transformations a chacun des objets).

    Sinon est ce que le fait de garder les coords de mon objets dans son repere plutot que dans le repere du monde est une bonne chose ?

    Merci encore de ta réponse

    ++

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Si tu possède les coordonnées du centre de ton objet, tu soustrais le centre à tous les points de l'objets, tu appliques ta rotation, et tu réadditionne les coordonnées du centre.

    Sinon, ca doit etre possible de prendre en compte la position courante dans le calcul de rotation, si je me rappel bien on peut trouver une formule pas trop complexe pour ca.

Discussions similaires

  1. Repère non orthogonal pour rotation et translation?
    Par paulinem dans le forum Mathématiques
    Réponses: 3
    Dernier message: 18/05/2011, 19h47
  2. rotation et translation d'image
    Par diskostu dans le forum C
    Réponses: 1
    Dernier message: 30/04/2011, 01h25
  3. Problem Avec Java2D rotate() et translate()
    Par marshallMe dans le forum 2D
    Réponses: 2
    Dernier message: 06/08/2010, 17h31
  4. [java 3D] translations et rotations
    Par anotherboo dans le forum 3D
    Réponses: 2
    Dernier message: 29/01/2006, 15h23
  5. Réponses: 2
    Dernier message: 09/01/2006, 16h53

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