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

Développement 2D, 3D et Jeux Discussion :

Calcul d'angle entre 2 vecteurs - direction


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Calcul d'angle entre 2 vecteurs - direction
    Bonjour,

    Je suis en train de me faire une petite classe pour gérer les vecteurs en c#, et je suis confronté à un soucis dans le calcul d'angle.

    Je suis tout à fait d'accord que pour deux vecteurs u et v l'angle soit :
    cos a = <u,v> / (||u|| * ||v||)
    sin a = ||u^v|| / (||u|| * ||v||)
    (tiré de http://www.developpez.net/forums/sho...17&postcount=6 )

    Mais en fait j'aimerais au final connaitre l'angle de u vers v, et non pas l'angle entre u et v (cad que l'ordre des vecteurs est important)
    Grosso modo avec ces formules pour :
    * u (0,1,0) et v (1,0,0) l'angle sera 90°
    * u (1,0,0) et v (0,1,0) l'angle sera également 90°

    Moi je souhaiterais avoir :
    * -90°
    * 90°

    La en l'occurence vu que la coordonée en z est nul, je sais que je peux connaitre la direction en regardant le signe de (u.x * v.y - u.y * v.x), mais j'ai fait expres de prendre un exemple simple, en réalité la coordonée en z n'est pas forcément nul

    Bref, si quelqu'un voit une solution à mon problème, ca m'arrangerais beaucoup.

    Merci

  2. #2
    Membre éclairé
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Points : 681
    Points
    681
    Par défaut
    Salut,

    Euh, c'est à dire que l'angle tout seul n'a pas de "sens" où tu l'entends. Il peut en avoir, par exemple, par rapport à un axe. Je ne sais pas si c'est ce que tu veux faire mais tu peux par exemple calculer les angles d'Euler de tes 2 vecteurs (rotations du vecteur par rapport à chacun des 3 axes) et retrancher 2 à 2 les angles obtenus sur chaque axe.

  3. #3
    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
    Effectivement, selon l'endroit où tu te places l'angle sera positif et négatif de l'autre côté, il n'y a pas de notion de sens absolue.

    Il faut que tu te fixes un axe vers lequel l'angle sera positif (par exemple la direction de la caméra ?), ensuite en faisant le produit vectoriel de U et V, comparé au sens de cet axe (via produit scalaire), tu pourras déterminer un signe pour ton angle.

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai eu la légère impression de m'être planté dans ma notion d'angle aussi après avoir écris ce message

    Parce que effectivement, en 3d ca n'a plus beaucoup de sens la direction de l'angle étant donné qu'il suffit de regarder d'un 'coté' et de l'autre du plan formé par les 2 vecteurs pour voir qu'il se rajoute pi à la valeur (si on reste dans la meme rotation)

    Je pense que j'ai du me créer un faux problème en tentant de vouloir cette direction, je faisais une classe de représentation des forces pour un mini moteur physique et je me disais que ca allait me poser problème de pas avoir cette valeur. Mais ptet que non.

    Merci pour vos eclaircissements

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    A prioris non, tu peu faire un tas de truc merveilleux rique qu'avec des produits scalaires et des produit vectoriels

    Les angles interviennent de facon indirecte du coups. Qui plus est, passer par un angle comme va va t'ammener a calculer des sinus et des consinus. et c'est pas vraiment light niveau calcul

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

Discussions similaires

  1. Calculer le signe de l'angle entre 2 vecteurs. (en 3D)
    Par Invité dans le forum Mathématiques
    Réponses: 5
    Dernier message: 05/07/2014, 11h50
  2. [GLSL] Calculer un angle entre deux vecteurs.
    Par who_knows dans le forum OpenGL
    Réponses: 5
    Dernier message: 05/05/2010, 17h40
  3. calcul d'angle entre trois pixels
    Par mobi_bil dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 23/05/2009, 23h16
  4. Calcul d'angle entre deux vecteurs
    Par feynman dans le forum Fortran
    Réponses: 8
    Dernier message: 22/09/2007, 13h59
  5. 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, 18h56

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