2017-01-09 2 views
0

J'ai un ensemble de points 3d qui forment un polygone 2D. Ils sont commandés dans le sens horaire ou anti-horaire (l'un ou l'autre, mais je ne sais pas lequel d'avance).Triangulation d'un polygone concave 2D planaire dans un espace 3D - Aide à la vérification de la concavité?

Maintenant, je veux trianguler, ce que j'essaie de faire en utilisant une approche de coupe d'oreille. Le problème est que, pour que l'algorithme fonctionne, j'ai besoin de vérifier si un angle donné est concave ou non.

Dans l'espace 2d, et dans le sens des aiguilles d'une montre, vous pouvez utiliser le produit croisé et voir la direction de la flèche résultante pour savoir si l'angle est concave (si vous effectuez un virage à gauche ou à droite) . Cependant, sans savoir si mes points sont dans le sens des aiguilles d'une montre ou dans le sens inverse des aiguilles d'une montre, et sans connaître la normale de l'avion, je n'ai aucune idée de la façon d'aborder le problème.

Il existe des questions similaires telles que this one, mais elles supposent un espace 2D, ce qui facilite les choses.

Répondre

0

Vous devez d'abord projeter tous les points sur le plan XY, faire la triangulation, puis connecter les triangles aux points 3D originaux. Pour passer de la 3D à la 2D, vous avez besoin d'une trame pour encadrer la transformation. Le cadre d'origine sera calculé à partir des trois sommets les plus appropriés (origine, axe x et axe y) du contour d'origine.

+0

Plan de polygone peut être perpendiculaire à OXY, de sorte que la première étape - trouver le plan normal à polygone, et choisir le plan de projection en conséquence à la composante max de la normale (z-> XY et ainsi de suite) – MBo