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 :

distance point - segment


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut distance point - segment
    Bonsoir

    Y a t'il un moyen simple pour calculer la distance entre un segment et
    un point? Je recherche cette distance pour le cas 2D.
    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 957
    Points
    52 957
    Par défaut
    C'est un problème trivial de géométrie => Distance d'un point à une droite

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Dut Voir le message
    C'est un problème trivial de géométrie
    Pas tout à fait aussi trivial : il ne parle pas de droite mais de segment..

    http://www.faqs.org/faqs/graphics/algorithms-faq/ sujet 1.02

    Si la projection du point est à l'extérieur du segment, que prend-t-on comme distance ? la distance de la projection à la droite ou la distance du point au plus proche sommet ?

  4. #4
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Si la projection du point est à l'extérieur du segment, que prend-t-on comme distance ? la distance de la projection à la droite ou la distance du point au plus proche sommet ?
    Raisonner sur les ensembles de points décrits par les géométries pour définir les opérations est assez salutaire pour ces questions là. On distingue alors la distance à la droite (AB) et au segment [AB] de manière assez naturelle.

    Avec un segment [AB] et un point P, on recherche ainsi le point appartenant à [AB] qui soit le plus proche du point P. Pour ce faire :

    1) On calcule le projeté orthogonal P' de P sur la droite (AB) paramétré par t, tel que P' = A + AB*t (cette paramétrisation est importante pour tester l'appartenance au segment : P' appartient au segment <=> 0 <= t <= 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t = produit_scalaire( AP, AB ) / norme( AB )^2
    2) Si P' n'appartient pas au segment, on le ramène à l'extrémité la plus proche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    t = min( max( 0, t ), 1 )
    3) On obtient la distance entre [AB] et [P] en calculant la distance entre P' et P.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    P' = A + AB*t
    distance = norme( PP' )

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    nous sommes bien d'accord

    Je relevais simplement le raccourci (dans une forme un peu douteuse) émis par Dut.. et dont le line pointait vers la distance à une droite, lors que le PO parlait de distance à un segment.. Qui plus est avec les formules vectorielles, alors que le lien pointé dans les FAQ explicite les différents cas de manière claire.. Ce qui, au vu de l'introduction du PO, me semblait préférable.


  6. #6
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Juste remarque après coup oui

    PS : Merci pour le lien sur http://www.faqs.org/faqs/graphics/algorithms-faq/, c'est une bible

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Merci pour tous
    Dans mon problèmes je ne possède que des coordonnées pour chaque point : le segment [AB] on a A (Ax,Ay ) ; B( Bx,By) et pour le point P(Px,Py).

    je bloque un peu pour transformer les équations suivantes en fonctions des coordonnées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t = produit_scalaire( AP, AB ) / norme( AB )^2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    distance = norme( PP' )
    Merci d'avance pour votre aide

  8. #8
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut Sujet déjà rebattu

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    "rebattu" et non "rabattu"

  10. #10
    Membre à l'essai
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Bonsoir tous

    j'ai réalisé ce code sous matlab ,je pense que j'ai pris toutes les cas possibles ( position des points/segment)

    j'espère que ce résolu cette fois
    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
    clear all
    A = [4 , 5]; %1ere extrimité de segment ; 
    B = [9 , 5]; % deuxièlme extrmité de segment;
    C=[0, 3];
    t= (((C(1,1)-A(1,1))*(B(1,1)-A(1,1)))+((C(1,2)-A(1,2))*(B(1,2)-A(1,2))))/sqrt((B(1,1)-A(1,1))^2 + (B(1,2)-A(1,2)))^2; % paramètre de postion de point C
    comp=[ (B(1,1)-A(1,1)),(B(1,2)-A(1,2))]; %progection de AB sur les Axes Ox et Oy
    P = A + t* comp;  % coordonnées de progection (P) du point C sur toute la droite AB
    if   t<0
        distance = sqrt((A(1,1)-C(1,1))^2 +  (A(1,2)-C(1,2))^2);% si le projeté est à gauche de segment [AB]---> 0=<t
     
      elseif t>1   
     
             distance = sqrt((B(1,1)-C(1,1))^2 +  (B(1,2)-C(1,2))^2);% si le projeté est à droite de segment [AB]---> t>1
     
     
     
           else
        distance = sqrt((P(1,1)-C(1,1))^2 +  (P(1,2)-C(1,2))^2); % si le projeté est dans le segment [AB]---> 0=<t=<1
    end
     
    distance
    Et merci pour l'aide

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2014, 20h27
  2. Distance point droite: détail de l'équation
    Par darkman19320 dans le forum Mathématiques
    Réponses: 3
    Dernier message: 04/08/2010, 22h12
  3. Distance Point Segment !
    Par snipes dans le forum Mathématiques
    Réponses: 13
    Dernier message: 05/01/2010, 18h26
  4. Distance d'un point à un segment de droite
    Par defluc dans le forum Mathématiques
    Réponses: 63
    Dernier message: 08/09/2009, 00h49
  5. [mécanique] distance point/surface
    Par NailMaker dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 31/05/2006, 18h09

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