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 :

Rotation dans l'espace


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut Rotation dans l'espace
    Bonjour,

    Je suis actuellement sur un projet de 3D et je recherche les coordonnées d'un point situé sur un plan de l'espace, mais je pense que des images l'expliqueront mieux que moi.





    Alors, ce que je recherche, ce sont les coordonnées du point X situé sur le plan P.
    Je connais pour cela les coordonnées du points A, le vecteur V, les coordonnées point A' qui est l'intersection entre le plan P et le vecteur v ainsi que les angles de rotation.

    J'ai essayé de retrouvé les coordonnées à l'aide d'une matrice de rotation comme celle qui suit que j'ai appliquée sur le point A puis d'une translation afin que le point trouvé soit sur le plan P,
    [ a b c 0 ]
    [ d e f 0 ]
    [ g h i 0 ]
    [ 0 0 0 1 ]

    --> cos(Y)*cos(Z)=a
    --> sin(Z)*cos(X)-cos(Z)*sin(Y)*sin(X)=b
    --> sin(Z)*sin(X)+cos(X)*sin(Y)*cos(Z)=c
    --> cos(Y)*-sin(Z)=d
    --> cos(Z)*cos(X)+sin(X)*sin(Y)*sin(Z) =e
    --> cos(Z)*sins(X)-cos(X)*sin(Y)*sin(Z) =f
    --> -sin(Y)=g
    --> -cos(Y)*sin(X)=h
    --> cos(Y)*cos(X)=i

    Seulement, les résultats ne collent pas à la réalité, et je ne parviens pas à trouver mon erreur.

    C'est pour cela que je fais appel à vous afin de savoir s'il y a des erreurs dans la méthode que j'ai employée et si oui, comment puis-je les résoudres ?

    cordialement.

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Bien le bonjour,

    Je vais peut-être dire une bêtise, mais il me semble qu'on peut tout à fait résoudre ça sans s'embêter avec des matrices et des rotations.

    Considérons le triangle rectangle composé du segment AA' et de l'un des segments rouges de la seconde figure. Le 3è segment s'obtient en fermant le triangle. Tu connais la longueur AA' ainsi qu'un angle de ce triangle (25°), tu peux donc déterminer le second point du segment rouge (notons le P1).
    De la même manière tu peux déterminer le point P2 correspondant à l'autre segment rouge.

    Ton point X sera tel que A'X = A'P1 + A'P2 (en notation vectorielle)

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Je traiterais le problème dans un repère orthonormé U,V,W, où:
    U, V est une base du plan P,
    W est un vecteur colinéaire à AA'.
    Comme l'a fait remarquer Khayyam90 il n'est pas diffiile dans un tel repère d'obtenir les coordonnées des extrêmités des vecteurs rouges de la figure 2.
    Le point P est sur une diagonale avec ces 2 coordonnées et une cote nulle.
    Il suffit donc d'avoir la matrice de passage de I,J,K à U,V,W et son inverse (algos complètement standard).
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    Merci pour vos réponses,

    En effet, j'ai pensé à faire la même technique que toi khayyam90, qui, de fait fonctionne. Seulement mon problème ne ce situe pas exactement là et je pense que j'ai mal dû m'exprimer, car par exemple pour trouver le point X dont je parle si le vecteur AA' est (0,0,-1), donc le long de l'axe Z. Je dois effectuer dans mon espace 3D une rotation de -22,5° selon l'axe X et une rotation de 22,5° selon l'axe Y (d'apres le repère dessiné dans le 1er post).
    Et pour le vecteur (-1,0,0) par exemple, qui est quant à lui associé à l'axe X, je dois faire une rotation de 22,5° selon l'axe Y et une rotation de 22,5° selon mon axe Z afin de retrouver le point dont je recherche les coordonnées.

    Ma question serai donc, qu'en est-t-il quand le vecteur est quelconque ? Y a t-il une règle qui me permettrait de retrouver les rotations nécessaires pour trouver le point dont je recherche les coordonnées?

  5. #5
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Je ne vois toujours pas le besoin d'une rotation. Si on reprend les notations P1 et P2 de Khayyam et la figure 2 et si on a un angle alpha au lieu de 25 °. Il suffit , dans un repère de centre A' de mesurer P1A'.
    On sait que P1A'/AA'=tan(alpha)
    Quand à AA' c'est la distance de A au plan P, si l'équation de P est:
    ux+vy+wz+t=0, alors AA'=|ux+vy+wz+t|
    Dans le repère que je suggère X a donc pour coordonnées
    X(AA'*tan(alpha), AA'*tan(alpha),0)
    Correction: AA'=|uX+vY+wZ+t| où X, Y, Z sont les coordonnées de A
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Par défaut
    Je comprend ce que tu veux dire Zavonen seulement, d'après moi ceci ne marche pas dans les cas que j'ai à traiter, pour mieux me faire comprendre, j'ai réalisé ce schéma d'un exemple concret que je pourrai avoir à traiter :



    Toutes les données dont je dispose sont annotées. le point O étant l'origine du repère et ayant par conséquent pour coordonnées (0,0,0).

    D'après vous, quelles seraient les coordonnées des points M et M', ou, directement A, dans le repère de l'espace représenté ?

    Amicalement.

Discussions similaires

  1. formules mathematiques de rotation dans l'espace
    Par quark22 dans le forum OpenGL
    Réponses: 3
    Dernier message: 15/01/2009, 16h16
  2. rotation d'un point dans l'espace
    Par ded jay dans le forum C++
    Réponses: 7
    Dernier message: 16/10/2007, 10h46
  3. Problème d'équations dans l'espace (perspective -> 3D)
    Par Rémiz dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 19/12/2005, 17h43
  4. rotations dans l'espace -validation d'un modèle mathématique
    Par khayyam90 dans le forum Mathématiques
    Réponses: 20
    Dernier message: 16/08/2005, 13h26
  5. Découpage dun string dans l'espace
    Par Clad3 dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/03/2005, 17h25

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