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 :

angle entre 3 points


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut angle entre 3 points
    bonjour, je recherche a calculer l'angle entre 3 points,

    bon j'ai commencer a faire ca, mais ca a pas l'air trop juste.[c'est en c++)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    // soit P1(x1,y1), P2(x2,y2), P3(x3,y3)
    // l'angle se situe au niveau de de P3 
     
             //a cause des divisions plus loins il y a ces conditions. 
            if(x2-x3 == 0)return;
    	if(y2-y3 == 0)return;
     
            // on calcule le coeficient angulaire
    	double CA = (y2-y3)/(x2-x3);
            // p est le reste de l'eqiuation perpendiculaire a la droite(passant par P2 et P3)et et passant par P1 
    	double p = y1 -(1/CA)*x1;
     
     
            // P4 point qui se situe sur la droite passant par p3 et p2 et qui forme alors un angle droit
    	x4 = (p+CA*x2)/(CA-1/CA);
    	y4 = (1/CA)*x4+p;
     
            // on calcule l'opose et l'ypothenuse
    	double opose = sqrt((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4));
    	double hypot = sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
     
            // on trouve l'angle
    	double angle = asin(opose/hypot);
     
    	cout << angle << endl;

    qqn serait il me dire ou j'ai faux, et si il y a une merilleur methode (sachant, qu'en generale se sont de petite distance qui separe P1 et P2 (compris entre 0° et 5°)

    merci

    a++


    alors,

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    on pourrait pas faire ca avec le produit scalaire?

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Rajouter le produit vectoriel si l'on veut un angle sur 2.Pi, si je ne m'abuses.
    http://www.ilemaths.net/forum-sujet-12185.html
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    d'habitude, c'est assez pratique de passer par les arctangentes ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    theta1 = atan2 ( y1-y3, x1-x3);    // angle P3P1 avec l'horizontale
    theta2 = atan2 ( y2-y3, x2-x3);    // angle P3P2 avec l'horizontale
    theta = theta2 - theta1;               //angle entre les 2 points
    Ca permet d'eviter une division par zero quand les points sont alignes verticament (bon, elle est faite par l'arctangente, mais ca fait moins de lignes a taper...).
    En plus, ca permet de gerer las angles orientés, ca peut etre pratique des fois.

    Sinon avec le produit vectoriel il me semble qu'il y a une relation,

    A+

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Kangourou
    Sinon avec le produit vectoriel il me semble qu'il y a une relation,
    Oui :
    - Produit scalaire => détermine cos(angle).
    - Produit vectoriel => détermine sin(angle).

    Et comme tan(angle)=sin(angle)/cos(angle)... ;-)
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [Débutant] Calculer un angle entre 3 points avec des coordonnées X Y Z
    Par mattparla dans le forum MATLAB
    Réponses: 6
    Dernier message: 28/11/2009, 17h43
  2. Calcul de l'angle entre 2 points
    Par Spaeda dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 12/08/2009, 13h06
  3. angle entre deux points
    Par Argasm dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 29/06/2009, 21h45
  4. Calcul de l'angle entre trois points en fonction du sens
    Par NeraOne dans le forum Mathématiques
    Réponses: 4
    Dernier message: 10/07/2007, 17h27
  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