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 :

Savoir si un point est inclus dans un polygone quelconque


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Savoir si un point est inclus dans un polygone quelconque
    Bonjour,
    je recherche une formule pour savoir si un point est inclus dans un polygone quelconque.
    C'est à dire quelque soit le nombre de sommet du polygone et même si le polygone est concave.
    Toutes les informations que j'ai trouvé m'on parues à l'adresse de matheux.
    il faudrait une explication très claire.
    Merci d'avance
      0  0

  2. #2
    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 : 40
    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
    Il y a principalement deux méthodes pour ça : la demi-droite, et les angles. Il me semble que la seconde ne fonctionne qu'avec les polygones convexes, je vais donc essayer de t'expliquer la première qui est en fait très simple.

    La méthode de la demi-droite consiste à calculer les intersections entre ton polygone et une demi-droite, ayant comme origine le point à tester et ayant une direction quelconque (avec une droite parallèle à l'axe des x ou des y les calculs seront cependant plus simples). Si ce nombre d'intersections est impair alors le point est à l'intérieur du polygone, s'il est pair alors le point se trouve à l'extérieur. Plutôt simple non ?

    Si tu as besoin d'explications plus poussées concernant le calcul des intersections n'hésite pas.
      0  0

  3. #3
    Membre averti

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par Loulou24
    La méthode de la demi-droite consiste à calculer les intersections entre ton polygone et une demi-droite, ayant comme origine le point à tester et ayant une direction quelconque (avec une droite parallèle à l'axe des x ou des y les calculs seront cependant plus simples). Si ce nombre d'intersections est impair alors le point est à l'intérieur du polygone, s'il est pair alors le point se trouve à l'extérieur. Plutôt simple non ?
    Avec cette methode, il faut faire attention aux "petits" cas particuliers: si la droite passe par un sommet du polygone, ou si elle coincide avec un cote, ou si le point qu'on veut tester se trouve, comme par hasard, sur un cote/sommet...
      0  0

  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
    ca a deja ete traite, il y a un peu de tps il est vrai.

    La methode des demi droites est assez simple a mettre en oeuvre, a part si on veut prendre en comtpe tous les cas embetant : quand le polygone a des cotes sur la demi droite de test, par exemple. Dans ce cas ca devient un peu penible.

    J'ai une preference pour la methode des angles. Elle est un peu plus robuste, et permet en pllus de savoir en plus combien de fois le polygone "s'enroule" autour du point. (et elle marche pour tous les types de polygones...)

    tout est explique ici :
    http://astronomy.swin.edu.au/~pbourke/geometry/insidepoly/

    A+
      0  0

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Remerciement
    Bonjour,

    J'avais déjà testé plusieurs méthode, mais celle du lien de Kangourou me donne toute satisfaction.
    Le code est simple et très facilement portable.

    merci de vos réponses.
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [3D] Comment savoir si un point est dans mon champ de vision
    Par patmaba dans le forum Développement 2D, 3D et Jeux
    Réponses: 10
    Dernier message: 04/11/2018, 13h20
  2. Savoir si un point est dans un polygone.
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 18/11/2008, 09h34
  3. Tester si un point est présent dans un polygone
    Par habasque dans le forum 2D
    Réponses: 11
    Dernier message: 26/09/2007, 16h00
  4. Savoir si un point est dans la zone affiché
    Par nicoenz dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2006, 15h59
  5. point ou non dans un polygone quelconque
    Par Mandarine dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 11/06/2006, 03h03

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