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

Développement 2D, 3D et Jeux Discussion :

Decomposé un polygone 2D troué en plusieurs polygones pleins


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut Decomposé un polygone 2D troué en plusieurs polygones pleins
    Bonjour,

    Je dois effecter un calcul sur des polygone 2D pleins (non troué). Hors j'ai a ma disposition des polygones évidés par d'autres polygones.
    Comment décomposer le polygone troué initial en N polygones pleins, svp ? (pas de contraintes : decomposition non unique, N indefini)

    Par exemple avec le polygone P0P1P2P3P4P5P6P7 troué par T0T1T3T4 T5T6T7 (polygonTroue.jpg), je peux le decomposer en trois polygones pleins
    P0P1P2T4T3T1T0, P0T0T4P2P3T6T5P7 et P7T5T7T6P3P4P5P6 (polygonSubdivise.jpg) (voir image attachée)

    Merci, bonne journée
    Jc
    Images attachées Images attachées   

  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
    Je ne connais pas vraiment les algorithmes existant pour ça, mais intuitivement je pense qu'un point de départ serait de découper récursivement ton polygone par une droite définie par l'un des côtés de l'un des trous. Tu obtiens ainsi N polygones, auquels tu peux à leur tour appliquer l'algorithme s'ils possèdent encore des trous.
    Images attachées Images attachées  

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Je m'en sors pas avec cet algo, et j'ai trouvé aucune autre indication sur le web... Personne n'a jamais eu besoin de faire cela ?

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    malheureusement, c'est un sujet nettement plus compliqué qu'il n'y parait
    Je m'y etait interessé à une époque et on m'avait dit de regarder du coté de voronoï, mais je n'y avais rien compris (et surtout pas trop vu le rapport a part de decouper le tout en sous polygones convexes)

  5. #5
    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
    Qu'est-ce qui te pose problème avec cet "algo" exactement ?

  6. #6
    mat.M
    Invité(e)
    Par défaut
    Si tu veux pas te casser la tête sous Windows tu peux créer des régions avec CreatePolygonRgn , les points des polygones et CombineRgn qui donne une région résultante.
    Mais ce n'est pas portable

  7. #7
    Membre averti Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Points : 328
    Points
    328
    Par défaut
    [Mode HS ON]
    Je m'y etait interessé à une époque et on m'avait dit de regarder du coté de voronoï
    effectivement, je ne vois pas le rapport, sinon comme dual d'une triangulation (de Delaunay)...
    [Mode HS OFF]

    L'algo de Laurent est très bien, et plutôt facile à mettre en place, je ne pense pas que tu puisses trouver quelque chose de plus simple --> il va falloir passer par une triangulation de ton polygone troué. L'idéal, ce serait une décomposition y-monotone de ton polygone troué (je sais qu'un algo existe dans un Graphics Gems ou un Game Programming Gems (cherche Manesha) et qu'il permet de faire ce que tu veux... reste à le trouver )
    Pour la triangulation, je te renvoie à http://www.mema.ucl.ac.be/~wu/Poly2Tri/poly2tri.html, mais tout dépend de l'utilisation que tu en feras. Dans certains cas, c'est un peu utiliser une bombe atomique pour ouvrir une huître

    Voilà, voilà

  8. #8
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    Citation Envoyé par dazz_x
    [Mode HS ON]
    effectivement, je ne vois pas le rapport, sinon comme dual d'une triangulation (de Delaunay)...
    [Mode HS OFF]
    ha merci, ca me rassure donc l'info devais bien etre un tuyau percé

Discussions similaires

  1. [OpenGL 2.x] Polygone avec trou -> primitive.
    Par yann458 dans le forum OpenGL
    Réponses: 1
    Dernier message: 25/02/2014, 13h55
  2. d3js fusionner plusieurs polygones
    Par mapmip dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 01/02/2014, 18h31
  3. Offset polygone, ne pas briser le polygone, (reduction)
    Par saturn1 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 17/08/2012, 17h45
  4. Masquer plusieurs polygones (ROI) simultanement
    Par KrokroAus dans le forum Images
    Réponses: 2
    Dernier message: 31/01/2012, 03h55
  5. dessiner plusieurs polygones
    Par tawsi dans le forum 2D
    Réponses: 8
    Dernier message: 30/05/2007, 13h14

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