Finally a Delaunay mesher for Mathematica triangulations

I always seem to end up needing a nice mesher, so this time I decided to do something about it. Took the easy solution and ported the nice Delaunay mesher Triangle by John Shewchuk. So cool with numerical software that fits in one file with no library dependencies!

Anyways, with my new Mac fanboy status MathLink just works, and after a quick wrapping job I can now spit out cool stuff like the figure above with the following briefness:

mytri[a_, b_, c_, area_] :=
  area > (0.1 + Min[Norm /@ {a, b, c}]^2);
buf = {
   Triangulate[points, "Segments" -> segs],
   Triangulate[points, "Segments" -> segs,
    "ConstrainMaxArea" -> 1],
   Triangulate[points, "Segments" -> segs,
    "ConstrainMinAngle" -> True,
    "ConstrainMaxArea" -> 1],
   Triangulate[points, "Segments" -> segs,
    "ConstrainMinAngle" -> True,
    "TriUnsuitable" -> mytri]
   };
GraphicsRow[Graphics[TriangulateGraphics[#]] & /@ buf]

As this is actually a nice clean wrap, I expect to put it on sourceforge of something – especially if I can talk John into a releasing his code under the GPL.

comments powered by Disqus