1
votes

I have a list of vertices 3D, creating a polygon. I need to triangulate it and i use the cutting ears algorithm. My polygons are non-convex, so i need to find the concave angles in the polygon. I also dont know wich orientation are my polygons ( clockwise or counter clocwise)

Could anyone help me how to determine if is clockwise or counter clockwise

Thank you

2
clockwise or counter clockwise depends on the side you're looking the polygon from, it's not absolute in 3d, I thinkfortran
Are you using a library (like OpenGL)? If so, you may be able to use something like GLUtesselator. This will scale easily even to non-convex polygons if you ever need it.Tarydon

2 Answers

1
votes

It's probably simplest to project the polygon into a convenient plane (say z=0) and then use a method like reinier's.

1) Set all z=0. This won't change the answer.

2) Use a method like reinier's or this one to determine whether the polygon is clockwise or counterclockwise, and therefore whether the cross products "should be" +z or -z.

3) Any vertex with a cross product that points in the "wrong" direction is concave.

0
votes

use the cross product

ordering of polygon