-
Découper des polygons
Salut, je voulais savoir si ils étaient possible de diviser un polygon quelconque en plusieurs triangles ?
Par exemple j'ai un polygon qui est composé de 9 sommets, dont je connais les coordonnés.
Maintenant j'aimerais découper ce polygon en plusieurs triangles(le moins possible) qui composeront ce polygon.
Existe t'il un algorithme qui résou mon problème? ou une autre solution ?
-
Salut,
Cherche "Triangulation polygone" dans google. Il existe beaucoup de méthodes selon si ton polygone est concave, possède des trous, etc...
Je ne pense pas qu'il y ait d'algo vraiment générique, mais c'est un problème classique et tu trouvera facilement des réponses en cherchant :)
-
Tu as plusieurs choix, qui dépendent entre autres de si ton polygone est concave ou convexe.
S'il est convexe, c'est assez facile, tu prends un des points de ton poly et tu reconstruis des triangles à partir de ce point, ou tu calcules le centre de ton poly et tu construis les triangles autour de ce point.
S'il est concave, c'est plus complexe et OpenGL le fait via GLU : http://www.songho.ca/opengl/gl_tessellation.html
-
Bonjour,
il est en effet possible d'utiliser la Tesselation offerte par GLU (gluTesselator, etc...) et c'est assez simple à mettre en oeuvre, cependant:
- Ca ne fonctionne pas (en tout cas pour moi), en C# via le TAO framework, les fonctions sont bien appelées mais les résultats sont...au mieux bizarres...
- OpenGL ES ne dispose pas de GLU, donc si vous comptez porter votre soft sur une machine portable, il faut réécrire la tesselation vous-même.
En me basant la dessus http://www.codeproject.com/KB/recipe...ngulation.aspx j'ai écrit une classe C# qui fonctionne sans probleme.
J'ai également la même en Objective-C. Si ca vous intéresse, je peux publier le code.
-
C'est bon j'ai trouvé une solution, finalement pas besoin d'utiliser un algo, car mes polygons son convexe