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 :

calcul d'angle orienté en 3d


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut calcul d'angle orienté en 3d
    Bonjour, ma question porte sur un sujet maintes fois abordé mais j'ai pas réussi à bien comprendre toute ce que j'ai pu lire ici où là...

    J'ai un espace 3D, dans lequel j'ai 4 points quelconques A, B, C et O.
    Je veux calculer l'angle entre AB et AC de façon à ce que cet angle soit positif par rapport au point O.

    C'est pour un projet en c++, et je fais trop peu de maths pour prétendre avoir des notions claires...

    Pour l'instant j'ai fait ceci (en pseudo code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cosBAC = AB.x * AC.x + AB.y * AC.y + AB.z * AC.z // avec AB et AC normalisés
    angle = acosf(cosBAC) * 180 / PI
    Il manque l'orientation de l'angle, mais sinon c'est correct ?

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    C'est, de mon point de vue, correct et l'orientation de l'angle manquera toujours (aucune orientation naturelle sur le plan ABC ne peut être déduite de l'orientation de l'espace).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Merci pour la confirmation, cependant il est très important que je puisse orienter mon angle par rapport au point O (sinon je peux jeter la moitié de mon appli...)
    J'ai cru comprendre qu'en calculant le sinus (donc le produit vectoriel) des deux vecteurs, je peux en déduire le signe de l'angle, mais cela implique que mon repère soit déjà orienté non ? Je ne vois pas comment impliquer le vecteur AO dans mon calcul pour récupérer l'angle...

    Merci d'avance pour les éclaircissements !

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par zarbiman Voir le message
    Je veux calculer l'angle entre AB et AC de façon à ce que cet angle soit positif par rapport au point O.
    C'est quoi ta définition d'un "angle positif par rapport a un point" ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Comme dit plus haut, j'ai un plan avec 3 points A B C, et un point O dans l'espace. Je veux calculer l'angle BAC, et obtenir un résultat entre 0 et 359 degrés (ou en radians, peu importe) ; bon après si j'ai un angle entre -180 et +180 ça me va aussi...
    Mais comme je suis en 3D, cela implique que le plan sur lequel se trouvent A B et C soit orienté... C'est pour ça que j'ai mentionné le point O

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Ah... Donc ton angle serait positif si (AB^AC) et OA forment un angle inferieur à 90°. C'est a dire que le produit scalaire (AB^AC).OA soit positif.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup, ça a résolu mon problème !! C'était exactement ça !!!

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

Discussions similaires

  1. Calcul angle orienté entre 3 points
    Par macgiver159 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 11/11/2008, 19h01
  2. Réponses: 6
    Dernier message: 16/04/2008, 20h42
  3. Calcul d'angles
    Par Giansolo dans le forum Octave
    Réponses: 3
    Dernier message: 27/02/2007, 20h00
  4. calcule d'angle entre 3 points d'une matrice
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/04/2006, 19h56
  5. calculer un angle
    Par m.nico dans le forum Langage
    Réponses: 7
    Dernier message: 05/11/2003, 21h55

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