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 :

Trouver les Angles de Euler.


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut Trouver les Angles de Euler.
    bonjour à tous,

    J’ai déjà posté ce mess dans le Forum des jeux 3d mais je crois que ce forum est plus approprié.


    Quelqu'un sait-il comment déterminer les angles de rotation (theta), (phi), (psi) à partir de coordonnées vectorielles(X,Y,Z)?

    Vecteur'(X',Y',Z') = Vecteur (X,Y,Z) * Mat_de_Rot{...}.

    j'ai la position et direction de mon vecteur à tout moment,
    je dois déterminer ses rotations par rapport aux différents plans, Ce qui me permettrais d'avoir les angles de rotation des axes (X, Y, Z)
    (Les angles de Rotation de euler autrement dit).


    Merci de votre aide
    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    Si tu calcules la norme de ton vecteur, tu peux ensuite obtenir le cosinus et sinus de chaque angle de rotation.
    Une simple fonction arcos et arcsin te donneront ensuite les angles.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut
    Pourrais tu me donner un exemple avec:
    verteur (x=0; y=1; z=0.5)
    ->
    verteur (x'=0.2; y'=-0.4; z'=0.5)
    Que vos les angles de rotation (theta), (phi), (psi) [euler]. !

    MErci

    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Si tu as ta matrice de transformation, tu as une méthode dans la FAQ "Matrices et quaternions" du site: http://jeux.developpez.com/faq/matqu...formations#Q37
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut
    je te remercis mais je suis déja allé voir la faq.
    malheureusement ca ne résoud pas mon soucis.

    Car les angles en fonction d'autres angles ne m'interesse pas.

    ce qui serai au top un truc du genre:

    (theta) = sin(X)-cos(Y)*.....

    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Soit N un vecteur normal a un plan
    Soit L vecteur directeur d'une droite

    on peut trouver l'angle entre une droite et un plan commme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                 |L . N |
    sin(angle) = --------
                  |L||N|
    je sais pas si avec 3 plan qui passe à l'origine
    si ca peut aider....?

    à vérifier...?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par virtuA
    je te remercis mais je suis déja allé voir la faq.
    malheureusement ca ne résoud pas mon soucis.
    Ah... pourtant, tu veux calculer les angles d'euler, et le lien te file même l'algorithme... doit y avoir un truc qui m'échappe...

    Citation Envoyé par virtuA
    Car les angles en fonction d'autres angles ne m'interesse pas.
    ????? en fonction d'autres angles??? où ça?
    La méthode te sort tes angles d'Euler en fonction des termes de ta matrice de transformation. Y'a pas d'angles en fonctions d'autres angles (d'ailleurs je ne vois pas trop quels seraient ces autres angles...)

    Citation Envoyé par virtuA
    ce qui serai au top un truc du genre:

    (theta) = sin(X)-cos(Y)*.....
    Ca va être chaud ça... j'avais fait un truc du genre en python il y a quelques années de cela, je vais essayer de remettre la main dessus...

    [edit] bon... je l'ai retrouvé... ben prends la méthode de la FAQ plutôt!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  8. #8
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut
    RE,
    prennons par exemple dans l'algo la 1ere ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    angle_y = D = -asin(mat[2]);           /* Calcul de l'Angle Y */
    Donc mat[2] si on regarde plus haut:
    C, D sont le cosinus et le sinus de la rotation autour de l'axe Y,
    ...
    on constate que l'élément [2] a la valeur de -D, soit -sin(Y)
    Donc il possible qu'il y est quelque chose qui m"échappe!
    mais j'ai l'impression de tourner en rond !

    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  9. #9
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par virtuA
    Donc il possible qu'il y est quelque chose qui m"échappe!
    Oui, je crois... ce qui est noté Y dans la FAQ, c'est l'angle de rotation autour de Y.... donc si mat[2]=-sin(Y) dans l'explication, c'est normal que Y=-arcsin(mat[2]) dans l'algorithme... c'est des maths...

    Tu ne calcules pas ta matrice de transformation à partir de tes angles d'euler (ce qui est normal, cu que tu ne les connais pas!), tu la calcules à partir de tes deux vecteurs, le vecteur de départ, et le vecteur transformé.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  10. #10
    Membre actif Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Points : 210
    Points
    210
    Par défaut
    je vais essayer de reformuler un peu mon post car personne n'est capable de me donner un exemple, surement que je m'exprime pas très bien;

    -J'ai un repère x,y,z et un vecteur.
    (Mon vecteur indique tjs la même direction, mais comme mon repère effectue des rotations, les coordonnées de mon vecteur changes).

    j'ai la valeur des axes (x,y,z) d'un vecteur à t0:
    ex : V (x=0; y=1; z=0.5)

    A t0+1 j'ai de nouvelles valeurs sur les axes :
    ex : V' (x'=0.2; y'=-0.4; z'=0.5)

    Ma question est comment obtenir les trois angles de rotation de mon Repère x,y,z à partir de ces données ?

    Svp j'aimerai un petit exemple si possible

    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut un petit dessin ?
    Hello,

    je sais que ça peut paraitre stupide, mais un petit dessin, fait avec un logiciel de traitement de texte, copié collé sous paint et hébergé dans un hebergeur d'images gratuit et simple comme imagup.com, par exemple, peut peut-être lever les malentendus.

    je ne comprends pas bien moi même : qu'est-ce qui est fixe, et qu'est-ce qui bouge.

    je suis arrivé là car je cherche comment calculer les angles d'Euler entre deux repères (le repère de base, et un repère dont je connais les coordonnées du vecteur x et du vecteur z). mais j'ai déjà une expérience qui peut peut être t'aider.

    D'abords, rappel des angles d'Euler :



    Donc, pour positionner un vecteur dans l'espace, deux angles d'Euler te suffisent : psi et teta



    donc, si tu veux trouver les angles d'Euler qui positionnent ton vecteur dans la base globale à partir de ses coordonnées, voilà la solution. Sinon, désolé pour le post inutile

Discussions similaires

  1. Précision sur les angles d'Euler
    Par Ange_blond dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 05/03/2009, 19h23
  2. Recupérer les angles d'euler à partir d'un vecteur
    Par franco01 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 17/07/2006, 21h08
  3. Trouver les redirections dans des traces
    Par severine dans le forum Développement
    Réponses: 3
    Dernier message: 21/04/2004, 18h51
  4. [GUI] Ou trouver les standard ?
    Par Braim dans le forum Windows
    Réponses: 5
    Dernier message: 01/10/2003, 08h13

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