I’ve been looking at the Delaunay method and reading some of threads on the forum regarding it, but again it does not look like it will handle concave polygons.
I have had good luck with running delaunay (both Paul Bourke’s implementation and Triangle++).
The approach I took is the following (thanks Zach!) :
1 - Feed you points to delaunay.
2 - For each triangle it gives you back calculate the center point (avg of the three points).
3 - Do a point in polygon test for the center to see if it lies inside or outside of the shape. If it is outside you don’t add that triangle to your draw list.
I used this for 2D polygons but it should work for 3D too.
I’ve been battling with this today and I am really struggling.
I’ve used both the Triangle++ and Paul Bourke’s implementation with similar outcomes.
Here is the output of Paul Bourke’s method from original polygon (bottom) to filled triangle output (top). NB this does not execute step 3.
As you can see, when the Delaunay method hits a concave segment it builds the triangle on the outside of the polygon.
However, if I execute step 3 and remove the exterior triangle, I am left with no triangles within the polygon. (see black space).
Any thoughts on where I am going wrong here? I can see the triangle++ method creating steiner points on the interior of the polygon (which I have not been able to do). Is that the solution?