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 :

[2D] Transformer un polygone complexe en triangle


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [2D] Transformer un polygone complexe en triangle
    Bonjour à tous,

    Je voudrais savoir si il y'a une librairie qui permet de transformer un polygone complexe en triangles.
    Concrètement l'idéal serait de passer en entré les sommets du polygone et que la fonction retourne les sommets de tous les triangles.

    Auriez-vous une idée ?

    Merci d'avance !

  2. #2
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Je n'en connais pas en particulier mais ça devrait assez facilement se trouver. Le mot clef à chercher est "triangulation", delaunay par exemple. "polygon triangulation" en anglais.

  3. #3
    Membre actif
    Avatar de Fabien Henon
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Mars 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 151
    Points : 226
    Points
    226
    Par défaut
    Normalement comme tu connais les sommets de ton polygone il me semble que tu dois pouvoir faire ça assez facilement toi même.
    Ne suffirait il pas de garder les sommets de ton polygon mais de les afficher en triangle strip?
    Soft Creations - FirmLife

    Soft Creations: Blog de Fabien Henon et site de prestations de sites web et applications mobiles
    FirmLife: Le nouveau jeu de gestion d'entreprises en ligne

  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
    Citation Envoyé par ThEbAsHeR Voir le message
    Normalement comme tu connais les sommets de ton polygone il me semble que tu dois pouvoir faire ça assez facilement toi même.
    Ne suffirait il pas de garder les sommets de ton polygon mais de les afficher en triangle strip?
    ce n'est pas aussi simple que ça car il existe plusieurs triangulation possible pour un jeu de vertex donné...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci de vos réponses. J'ai trouvé un certain nombre de chose et je pense m'orienter sur la triangulation de delaunay. Le problème que j'ai actuellement c'est que tous les algo que j'ai trouvé découpe le polygone en triangle, mais il y a un certain nombre de trianglez qui sont inutiles et qui pourrait être supprimé. La triangulation de delaunay permet de résoudre cela ?

    Merci bien.

  6. #6
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Il est convexe ou pas ton polygone?

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Il est concave.

  8. #8
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Kewlcool Voir le message
    ...mais il y a un certain nombre de trianglez qui sont inutiles et qui pourrait être supprimé. La triangulation de delaunay permet de résoudre cela ?
    Oui (enfin, si on va jusqu'au bout!)
    Mais qu'est-ce exactement qu'un triangle "inutile"???

    Si c'est un triangle de surface nulle, tu le supprimes, point barre.

    Si c'est un des triangles externes à ton polygone (vu que normalement avec delaunay tu encadres ton polygone par un rectangle), il y a toute une procédure à effectuer afin de retrouver la frontière de ton polygone. Ensuite il faut trier tes triangles en partant de l'extérieur (donc des triangles ayant au moins un sommet sur les sommets du rectangle englobant) et en allant vers la frontière (il faut gérer les voisins au passage afin de savoir où aller dès qu'on atteint la frontière du polygone). Normalement à la fin il ne reste que ton polygone triangulé.

    Le net regorge de sources et de doc pour la triangulation de delaunay, c'est la base des triangulations...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Les triangles inutiles c'est les triangles inclus dans d'autres triangles possible composant le polygone.
    Le premier schéma, si j'ai bien compris, c'est le rendu de la triangulation de delaunay.

    Nom : Delaunay_triangulation_small.png
Affichages : 391
Taille : 10,3 Ko

    Le second schéma avec les segments rouges c'est le nombre de triangle que j'aimerai avoir au final.

    Nom : Delaunay_triangulation_small-modifié.PNG
Affichages : 292
Taille : 14,4 Ko

    Et ce dernier schéma c'est pour un polygone concave.
    Nom : concave_polygon.gif
Affichages : 478
Taille : 1,9 Ko

    Je n'ai peut être pas bien compris triangulation de delaunay, mais le but de tout ça est d'avoir le moins de triangle composant un polygone donné.

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Kewlcool Voir le message
    Les triangles inutiles c'est les triangles inclus dans d'autres triangles possible composant le polygone.
    Ce ne sont pas des triangles "inutiles"... par contre il y a plein de points inutiles, si tu vas par là.
    Si tu parles de polygone, il n'y a que les points de la frontière de définis, donc tu n'auras pas de triangles "inutiles" (vu que ceux-ci sont construits via les points intérieurs au polygone). Si tu as ces fameux triangles, c'est que tu as fournis des points intérieurs (auquel cas tu ne triangules pas un polygone... mais une surface)... ou que l'algo utilise une taille limite d'éléments et va découper les triangles trop gros en plus petits.

    Donc, la solution:
    - si tu as fourni des points intérieurs, supprime-les et n'utilise que les points de la frontière du polygone
    - si tu n'as pas fournis de points intérieurs, regarde si l'algo utilise une taille limite d'éléments (aire, longueur de côté,...), et si oui augmente-la.

    Attention également au respect de la frontière... j'espère que les algos que tu as utilisé en tiennent compte...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    ou que l'algo utilise une taille limite d'éléments et va découper les triangles trop gros en plus petits.
    Ha yes bien vu ! j'avais pas capté la taille maximum, merci bien je pense que la ça va le faire !

    Quand tu parles du respect de la frontière c'est pour les polygone concaves ? Que je n'ai pas de triangle hors du polygone ? Ou c'est autre chose ?

    En tout cas merci c'est beaucoup plus logique en effet !

  12. #12
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Kewlcool Voir le message
    Quand tu parles du respect de la frontière c'est pour les polygone concaves ? Que je n'ai pas de triangle hors du polygone ? Ou c'est autre chose ?
    C'est autre chose!
    Ca dépend si l'algo est complet ou pas... si il est complet, tu dois fournir en données ta liste de point, ainsi que les segments permettant de définir le polygone (ou n'importe quelle autre méthode permettant de classer les points afin de tracer le périmètre du polygone). Normalement, après l'insertion de tous les points dans l'algorithme, tu obtiens une triangulation de ton espace de travail, mais tu ne retrouves pas exactement ton polygone. Il y a une étape supplémentaire qui va arranger les triangles, faire quelques manipulations, afin d'obtenir tous les segments composant le périmètre de ton polygone. C'est ça que j'appelle "respect de la frontière".
    Mais si tu utilises un algo complet, il doit te donner ton polygone triangulé au final.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Objets de base (cube, triangles, polygones etc)
    Par crischprolch dans le forum OpenGL
    Réponses: 10
    Dernier message: 02/04/2008, 14h31
  2. [XSLT] transformation complexe
    Par guiguix dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/04/2007, 10h11
  3. [LOD] Polygons complexes
    Par Mucho dans le forum OpenGL
    Réponses: 4
    Dernier message: 20/10/2006, 14h30
  4. Transformation de polylignes en polygones
    Par nkd dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 01/02/2005, 18h23
  5. Transformer une ligne en polygone
    Par bl4d3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/09/2003, 09h35

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