8
votes

Fusionner des triangles se chevauchant dans un polygone

J'ai un tas de triangles qui se chevauchent à partir d'un modèle 3D projeté dans un plan 2D. J'ai besoin de fusionner chaque île de Toucher des triangles dans un polygone fermé et non convexe.

Les polygones résultants ne doivent pas avoir de trous en eux (puisque les données source ne font pas).

Beaucoup de Triangles Source Partager (point flottant identiques) bords avec d'autres triangles dans les données source.

Quel est le moyen le plus simple de le faire? La performance n'est pas particulièrement importante, car cela se fera au moment de la conception.


1 commentaires

Voir aussi "Syndicat de polygones complexes": Stackoverflow.com/questions/2667748 / Union-of-Complex-polygone s


3 Réponses :


2
votes

Essayez GPC ou la bibliothèque générale de la tondeuse polygone .


2 commentaires

Malheureusement, cela sera utilisé dans un jeu commercial; Je ne sais pas comment Umanchester ressentirait à ce sujet.


GPC a également une licence commerciale. De plus, GPC répertorie d'autres bibliothèques similaires à CS.man.ac. UK / ~ Toby / Alan / Logiciels / # Liens . Peut-être l'un de ceux-ci a peut-être une licence plus appropriée.



2
votes

Imaginez la projection sur un plan comme une "vue" du modèle (c'est-à-dire que la direction de la projection est la ligne de mire et la projection est ce que vous voyez). Dans ce cas, les frontières des polygones que vous souhaitez calculer correspondent à la silhouette du modèle.

La silhouette, à son tour, est un ensemble d'arêtes dans le modèle. Pour chaque bord de la silhouette, les visages adjacents auront des normales qui pointent de l'avion ou de l'avion. Vous pouvez vérifier que cela prendra le produit DOT du visage normal avec le plan normal - Recherchez les arêtes dont les normales de visage adjacentes ont des produits à points de panneaux opposés avec la direction de projection.

Une fois que vous avez trouvé toutes les bords Silhouette, vous pouvez les rejoindre ensemble dans les limites des polygones souhaités.

Généralement, vous pouvez en trouver davantage sur la détection de silhouette et l'extraction par des termes de googling tels que silhouette de silouette de détection . Peut-être qu'un bon endroit pour démarrer est ici .


2 commentaires

Ce n'est pas tout à fait adéquat - pour un, j'ai plusieurs pièces de modèle dont les projections se chevauchent.


@nomagon, bon point. De plus, vos modèles sont-ils fermés? C'est à dire. Ont-ils un intérieur et un extérieur comme une sphère ou un tore? Ou sont-ils juste une soupe polygone générale?



1
votes

J'ai aussi trouvé cette approche [1] que je vais essayer ensuite.

[1] algorithme de plan 2D pour le maillage 3D projeté < / p>


0 commentaires