Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Angle oriente de 2 vecteurs



  1. #1
    oli1978

    Question Angle oriente de 2 vecteurs


    ------

    Bonjour a tous,

    Je cherche a calculer l'angle oriente de 2 vecteurs. Cependant, je souhaite obtenir un angle compris dansl'intervalle [0;2pi[. Pouvez vous m'aider ?

    Merci d'avanve pour vos pistes ou vos reponses.

    Olivier

    -----

  2. #2
    planck

    Re : Angle oriente de 2 vecteurs

    bonjour olivier,

    tout angle orienté a effectivement une infinité de mesure; et si l'une d'elle est x, alors toutes les autres s'écriront sous la forme x + k*2*pi, ou k est une entier relatif.
    A partir de là, pour obtenir un x dans l'intervalle [0;2*pi[, il suffit de retirer un nombre suffisant de "2*pi" à ton angle pour arriver à ce resultat.

    exemple:
    ton angle vaut 185*pi/6, tu veux le "simplifier"
    tu remarques par un moyen quelconque que 185/6 - 2*15 = 185/6 - 30 =5/6
    (par exemple, à la calculatrice, tu réalise 185/6 = 30.83333 , docn 185/6 - 30 = 0.8333 = 5/6)

    donc or, 185*pi/6 est la mesure du meme angle orienté que 185/6*pi-2*15*pi puisque cette derniere est bien de la forme 185*pi/6 + k*2*pi, avec k = -15

    mais 185/6*pi-2*15*pi = (185/6 - 30) * pi = 5/6 * pi, qui est bien compris ds l'intervalle demandé.

    PS: la mesure principale est comprise entre ]-pi ; pi], et non [0;2*pi[...

  3. #3
    oli1978

    Re : Angle oriente de 2 vecteurs

    Salut,

    Merci pour ta reponse, mais ce n'st pas du tout ce que j'attends. Supposons que j'ai 3 vecteurs u(0,-1), v(-1,-1) et w(1,-1).
    Je peux calculer l'angle (u,v) avec un produit scalaire, et l'angle (u,w) de la meme facon, mais ils sont orientes differemment. Or, le produit scalaire me donne le meme resultat, alors que j'aimerais obtenir un angle positif et unangle negatif, ou un angle positif et son complémentaire pour 2pi.
    Peut etre y a t il une facon en utilisant le produit vectoriel. On peut faire le produit vectoriel des 2 vecteurs, regarder le signe de la composant en Z et conclure si le triangle est direct ou indirect. Ensuite, a partir de la mesure de l'angle (son sinus), et de "l'orientation" du triangle, on peut conclure, mais c'est trop complexe (pas tant que ca en fait).
    Au final,je cherche une methode simple ... Si vous en avez une, je prends.
    Merci

  4. #4
    zoup1

    Re : Angle oriente de 2 vecteurs

    Le produit scalaire permet d'avoir le cos de l'angle le produit vectoriel d'avoir le sinus de l'angle. Cela définie entièrement l'angle.

    Après il faut être capable d'inverser le cos et ou le sin pour retomber sur l'angle lui-même.

    En partique si tu fais cela avec un ordinateur, en C par exemple il y deux fonctions distinctes ; l'une atan (si ma mémoire est bonne qui prend comme argument la tangente de l'angle) et qui renvoie un angle en -pi et pi (toujours si ma mémoire est bonne, l'autre atan2 qui prend comme argument le sinus et le cosinus et qui renvoie l'angle orienté.
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  5. A voir en vidéo sur Futura
  6. #5
    Spock67

    Re : Angle oriente de 2 vecteurs

    Pour zoup1 ->
    C'est exact sauf petit rectificatif :
    Atan revoie 1 angle compris entre -Pi/2 et +Pi/2
    Atan2 revoie 1 angle compris entre -Pi et +Pi

    Spock67 :

  7. #6
    oli1978

    Re : Angle oriente de 2 vecteurs

    OK, merci, c'est parfait ! Ce sera pas du C, mais du C++, et je vais m'en sortir avec ce atan2 ...

  8. #7
    zoup1

    Re : Angle oriente de 2 vecteurs

    Merci,

    Je savais bien que ma mémoire n'était plus très bonne...
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  9. #8
    jerome-gmc

    Smile Re : Angle oriente de 2 vecteurs

    Je me posais exactement la même question ça marche bien en calculant le cos, le sin, la tan et donc ensuite arctan pour trouver l'angle orienté de 2 vecteurs.

    Cependant pour mon application ça ne marche pas, je m'explique:
    J'ai un tube coudé défini par les coordonnées de ses coudes, je voudrais connaitre l'angle pour chaque coudes de ce tube, le problème avec votre méthode c'est que le calcul s'effectue comme si les vecteurs avaient le même point d'origine, l'angle calculé n'est donc pas le bon pour mon application.

    Ex:En 2D déjà après je généraliserais:
    point A: x=0 y=0 z=0
    point B: x=1 y=0 z=0
    point C: x=2 y=1 z=0
    Pour le calcul je pose le vecteur u(A-B) et v(B-C)

    Le calcul me donne un angle de 45° car les vecteurs u et v on la même origine dans le calcul, alors que mon tube à un angle de 135° si je met les vecteurs u et v bout à bout.

    Quelqu'un à une solution ou une formule?

  10. #9
    Stephen

    Re : Angle oriente de 2 vecteurs

    Citation Envoyé par zoup1
    Le produit scalaire permet d'avoir le cos de l'angle le produit vectoriel d'avoir le sinus de l'angle. Cela définie entièrement l'angle.

    Après il faut être capable d'inverser le cos et ou le sin pour retomber sur l'angle lui-même.
    Ca définit l'angle à 2kpi près, puisque cos et sin sont périodiques. De même, ce ne sont pas le cos et le sin que l'on inverse, mais leurs restrictions respectives à [0,pi] ou [-pi/2 / pi/2]

  11. #10
    jerome-gmc

    Re : Angle oriente de 2 vecteurs

    OK, mais cela ne donne que l'angle orienté de 2 vecteurs mais pas l'angle qu'il existe entre les 2 vecteurs bout à bout?
    Je ne sais pas si j'ai été assez clair, vu ta réponse.

  12. #11
    shokin

    Re : Angle oriente de 2 vecteurs

    Citation Envoyé par jerome-gmc
    OK, mais cela ne donne que l'angle orienté de 2 vecteurs mais pas l'angle qu'il existe entre les 2 vecteurs bout à bout?
    Je ne sais pas si j'ai été assez clair, vu ta réponse.
    Je n'ai pas compris la différence entre angle orienté de deux vecteurs et angle qu'il existe entre les deux vecteurs bout à bout.

    En tout cas :

    Soient les point A, B et C et considérons les deux vecteurs -AB-> et -AC->. [(-AB->)*(-AC->)]/[II-AB->II*II-AC->II]=cos(@), @ étant l'angle BAC. [Le produit scalaire des vecteurs sur le produit des normes égale le cos de l'angle entre ces deux vecteurs.]

    Et comme le cos d'un angle égale le cos de l'angle opposé...

    Ensuite, pour voir l'orientation de l'angle, tu peux visualiser (ou esquisser) tes vecteurs.

    Shokin
    Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.

  13. #12
    jerome-gmc

    Re : Angle oriente de 2 vecteurs

    OK ça je sais faire mais mon problème est en fait:

    J'ai un tube coudé défini par les coordonnées de ses coudes. Il possède x coudes et je voudrais connaître les angles de chaque coude de manière automatique juste par calculs sous Excel avec l'aide de programme en VBA.

    La démarche est:
    Le produit scalaire me donne la valeur du cos
    Le produit vectoriel me donne la valeur absolue du sin, et c'est la qu'est le problème, je ne sais pas en réalité si le sin est positif ou négatif et ça ne me permet donc pas de connaître l'angle à partir du cos et du sin.

  14. #13
    zoup1

    Re : Angle oriente de 2 vecteurs

    Je ne suis pas sur de bien comprendre ce qui te gêne... j'essaye quand même :
    Si tu as un coude A-> B -> C et que tu cherche l'angle ABC. IL te suffit de considérer les deux vecteurs et . te donne le cosinus de l'angle. et te donne le sinus, avec le bon signe !!! on parle bien de l'angle qui va de BA à BC.
    Cela t'éclaire ?
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  15. #14
    shokin

    Re : Angle oriente de 2 vecteurs

    Je crois simplement qu'il te faut prendre chaque vecteur dans l'ordre du tube, du chemin (ou dans l'autre sens, pourvu qu'il y ait un sens) :

    -AC->=-AB->+-BC->

    Donc le sinus de l'angle égale -AB->x-BC-> = -CB->x-BA-> (chemin inverse)

    Dans le produit vectoriel de deux vecteurs, si je change le signe d'un des vecteurs (par exemple de -BC-> à -CB->), le signe change.

    Shokin
    Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.

  16. #15
    jerome-gmc

    Re : Angle oriente de 2 vecteurs

    Je ne trouve pas ça shokin:

    Démonstration:
    Soient les vecteurs:
    AB-> (-1, 0, 0)
    BC-> (1, -1, 0)

    ||AB->||=1
    ||BC->||=2^0.5= racine de 2 (pour les novices)

    AB-> ^ BC-> = (0, 0, 1)

    ||AB-> ^ BC->|| = 1

    --> sin (AB, BC) = ||AB-> ^ BC->|| / ( ||AB->||.||BC->|| )
    = 1 / (1*2^0.5)
    = (2^0.5)/2 racine de 2 sur 2
    = sin positif

    Maintenant remplacons BC-> par CB->
    CB-> = (-1, 1, 0)

    ||CB->||= 2^0.5
    AB-> ^ CB-> = (0, 0, -1)
    ||AB-> ^ CB->|| = 1

    --> sin (AB, CB) = ||AB-> ^ CB->|| / ( ||AB->||.||CB->|| )
    = 1 / (1*2^0.5)
    = (2^0.5)/2 racine de 2 sur 2
    = sin positif

    Et dans plusieurs exemple je ne trouve pas sinus négatif.

    A moins qu'il y ait une erreur dans mes formules de départ, le sinus ne change pas de signe.

    J'ai bon???

  17. #16
    zoup1

    Re : Angle oriente de 2 vecteurs

    Si je comprends bien tes notations il y a un truc qui ne va pas...

    par définition : ||AB-> ^ BC->|| = ||AB->||.||BC->||.|sin(AB,BC)|
    mais cela ne donne effectivement aucune information sur le signe du sinus.
    par contre : AB-> . BC-> = ||AB->||.||BC->||.cos(AB,BC). Ici on a une information sur le signe du cosinus.

    Connaitre le signe du cosinus est utile car cela permet de savoir si c'est un angle obtu ou aigu. Connaitre le signe du sinus n'a pas forcément un grand sens au moins dans l'absolu/ Pour que cela en ait un, il faut définir un sens de rotation positif arbitraire.
    Si tu veux vraiment faire cela, il faut donc définir un sens de rotation positif. Imaginons que cela se passe dans un plan. Il est alors facile d'imposer se sens arbitraire tout le temps. Par exemple, il suffit de compter positiviment un angle lorsque cela correspond à une rotation dans le sens trigonométrique. Le plus général est de définir ce sens de rotation positif par un vecteur unitaire perpendiculaire au plan. Le sens trigonométrique correspond alors un vecteur qui est orienté en sortant du plan en question.
    Lorsque tu calcules le produit vectoriel de tes deux vecteurs, tu obtiens un vecteur qui est orienté perpendiculairement au plan des 2 vecteurs de tel sorte que les 2 premiers vecteurs avec le 3ème vecteur forment un trièdre direct. Tu peux alors connaitre l'orientation en calculant le produit scalaire entre le vecteur qui définie sens de rotation positif et le vecteur résultant du produit vectoriel des 2 premiers vecteurs.

    Par ailleurs j'ai l'impression qu'il n'est pas inutile de rappeler la façon de calculer un produit vectoriel entre 2 vecteurs A->(Ax,Ay,Az) et B->(Bx,By,Bz) :

    A-> ^ B-> = ((Ay Bz - Az By) , (Az Bx - Ax Bz), (Ax By - Ay Bx))

    Heu, j'espère que c'est pas trop confus...
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  18. #17
    shokin

    Re : Angle oriente de 2 vecteurs

    Peut-être que je me suis trompé, j'ai dit "je crois...". Je n'ai pas vérifié.

    Mais il me semble que je suis un chemin (un tube), non que je sautille sur ce chemin.

    Je vais de A à B, puis de B à C, je vais donc chercher à calculer -AB->x-BC->.

    Shokin
    Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.

  19. #18
    zoup1

    Re : Angle oriente de 2 vecteurs

    Il faut faire un dessin pour savoir de quel angle vous voulez parler... On a le droit de parler de celui que l'on veut... mais encore faut-il le dire correctement...

    Sur la figure que j'ai faite donc, que cherches tu à mesurer ?

    alpha, beta, phi ou theta ?
    Images attachées Images attachées
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  20. #19
    jerome-gmc

    Re : Angle oriente de 2 vecteurs

    C'est l'angle Béta dont j'ai besoin. Voir fichier joint.

    En fait pour le coude formé par les points A, B et C, je sais que je doit considérer les vecteurs BA-> et BC-> pour trouver l'angle Béta et non le vecteur AB->.




    Tu me dis qu'il y a un problème dans ma notation mais je ne vois pas ou j'ai fait une erreur :

    Par définition ||AB-> ^ BC->|| = ||AB->||.||BC->||.|sin(AB,BC)|
    et cela équivaut à:
    |sin (AB, BC)| = ||AB-> ^ BC->|| / ( ||AB->||.||BC->|| )


    Et au sujet du produit vectoriel:
    Si
    AB-> (-1, 0, 0)
    BC-> (1, -1, 0)

    --> AB-> ^ BC-> = (0, 0, 1)
    ou avec une autre écriture AB-> ^ BC-> 0
    0
    1

    J'ai bien appliqué la même formule que toi?

    Je ne vois pas d'erreur?

    Au sujet de la solution que tu proposes je vais me pencher dessus. Pour l'instant c'est un peu flou.

    A suivre...
    Images attachées Images attachées

Discussions similaires

  1. Angle orienté de 2 vecteurs 3D
    Par pius1985 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 27/08/2008, 16h59
  2. Angle orienté formé par 2 vecteurs
    Par daf_64 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 11/04/2007, 14h34
  3. angle orienté
    Par babydoll78 dans le forum Mathématiques du collège et du lycée
    Réponses: 8
    Dernier message: 02/03/2007, 23h03
  4. angle orienté
    Par jums dans le forum Mathématiques du collège et du lycée
    Réponses: 0
    Dernier message: 27/02/2007, 21h25
  5. angle de 2 vecteurs
    Par flo1012 dans le forum Physique
    Réponses: 5
    Dernier message: 21/09/2006, 19h01