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

Windows Presentation Foundation Discussion :

Calculer l'angle entre deux lignes


Sujet :

Windows Presentation Foundation

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut Calculer l'angle entre deux lignes
    Bonjour,

    Je souhaiterais afficher l'angle au point de connexion des deux ligne. Pourriez vous m'aider.

    Merci


  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Qu'est-ce qui te pose problème ? Le calcul de l'angle, ou son affichage ?

    Si tu as les coordonnées des lignes, par exemple (x11, y11), (x12, y12) pour la première et (x21, y21), (x22, y22) pour la 2e, tu peux calculer l'angle comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double angle1 = Math.Atan2(y11 - y12, x11 - x12);
    double angle2 = Math.Atan2(y21 - y22, x21 - x22);
    double angle = angle1 - angle2;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut
    pour avoir un résultat j'ai du adapter un peu ton code :

    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
     public static double AngleBetweenToLines(Line line1, Line line2)
            {
                if (line1 != null && line2 != null)
                {
                    double angle1 = Math.Atan2(line1.Y1 - line1.Y2, line1.X1 - line1.X2);
                    double angle2 = Math.Atan2(line2.Y1 - line2.Y2, line2.X1 - line2.X2);
     
                    var angle = Math.Round( ((angle1 - angle2 ) * (180 / Math.PI)) + 180,0);
     
                    //Permet d'avoir toujours un angle positif soit à droite soit à gauche de la ligne
                    if (angle < 0)
                        angle = angle * -1;
     
                    return angle;
                }
                else
                    return 0;
            }

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par pc152 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    //Permet d'avoir toujours un angle positif soit à droite soit à gauche de la ligne
                    if (angle < 0)
                        angle = angle * -1;
    Tu peux utiliser Math.Abs pour ça (valeur absolue)

    Cela dit, si tu comptes dessiner l'angle, tu auras besoin de sa direction, donc il faut garder le signe.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 135
    Points
    135
    Par défaut
    Merci de ton aide, j'ai obtenu le résultat souhaité voir la petit vidéo

    http://youtu.be/Vp16w_CpB60

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

Discussions similaires

  1. Calcul de variation entre deux lignes
    Par Caro0702 dans le forum SAS Base
    Réponses: 3
    Dernier message: 24/11/2011, 08h51
  2. calculer l'angle entre deux segments
    Par Riham Darine dans le forum Mathématiques
    Réponses: 5
    Dernier message: 22/04/2011, 00h39
  3. [GLSL] Calculer un angle entre deux vecteurs.
    Par who_knows dans le forum OpenGL
    Réponses: 5
    Dernier message: 05/05/2010, 17h40
  4. Calcul d'angle entre deux segments pour algo de Jarvis
    Par Niko_de_bordo dans le forum Mathématiques
    Réponses: 14
    Dernier message: 25/06/2009, 23h36
  5. Calcul d'angle entre deux vecteurs
    Par feynman dans le forum Fortran
    Réponses: 8
    Dernier message: 22/09/2007, 13h59

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