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 :

Trouver si un point est dans un polygone


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut Trouver si un point est dans un polygone
    Bonjour, bonjour,

    pour trouver si un point est dans un polygone j'aimerai utilisé la méthode qui consiste a faire la somme des angles (voir ici pour explications) mais cet algorithme a pour but d'être implémenté en c++ et je me disais que calculer chaque angle doit prendre pas mal de temps pour beaucoup de polygones.

    Donc, je me demandais si il est possible d'utiliser cette méthode sans calculé complètement chaque angle mais avec des outils plus adapté au calcul par ordinateur (ie en utilisant des matrices ou produits scalaires, vectoriels).

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    cette question a déjà été posé plusieurs fois sur ce forum.

    Pour ma part, regarder le signe des angles est une très bonne méthode, que j'utilise dans le calcul d'enveloppes convexes...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre actif Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133

  4. #4
    Membre confirmé Avatar de Mucho
    Inscrit en
    Décembre 2005
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 221
    Par défaut
    Hum en fait non, le titre n'est peut être pas adapté, désolé,

    comme je le disais j'ai déjà la solution je voudrais savoir si il y a des manières efficaces de la réalisée. (cf premier message)

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    tu dois calculer autant d'angle que de points constituant le polygone. Donc tu es en O(n). C'est tout à fait correcte.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    A la limite, tu peux limiter le nombre de polygones à tester en utilisant par exemple un octree (si tu es en 3D, sinon tu fais l'équivalent en 2D, un quadtree).
    Tu testes ensuite dans quelle partie de l'octree se trouve ton point (plus facile et rapide à mon avis de tester si un point est dans un cube), et ensuite de tester uniquement les polygones de cette partie de l'octree.

    Sinon, en 2D, tu peux également définir une boite englobante de ton polygone (qui sera définie en même temps que le polygone, histoire de ne pas la calculer à chaque fois), et déjà tester si ton point est à l'intérieur. Si il y est, tu fais ton test sur les angles, sinon tu passes au polygone suivant.

    Et tu peux aussi coupler les deux, quadtree+boite englobante...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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. Réponses: 14
    Dernier message: 05/04/2012, 14h16
  3. [JavaScript] [Google Maps]Tester si un point est dans un Polygone
    Par NoSmoking dans le forum Contribuez
    Réponses: 1
    Dernier message: 08/08/2011, 17h48
  4. Savoir si un point est dans un polygone.
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 18/11/2008, 09h34
  5. Savoir si un point est dans la zone affiché
    Par nicoenz dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/12/2006, 15h59

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