Generating Delaunay triangulations

Triangle's default behavior is to find the Delaunay triangulation of a set of vertices. Store the vertices in a .node file, such as spiral.node, illustrated below. The command

triangle spiral
produces the Delaunay triangulation, also illustrated below.

To triangulate a PSLG instead, describe the geometry of the region you wish to mesh in a .poly file, such as face.poly, illustrated below. Use the -p switch to specify that the input is a PSLG (.poly file) rather than a vertex set (.node file). The command

triangle -p face
will produce the constrained Delaunay triangulation, with holes and concavities removed. (The mouth and eye holes are specified in the input file; the concavities are removed automatically.)

The automatic removal of concavities from the triangulation will be detrimental if you have not taken care to surround the area to be triangulated with segments. In the next example, the input file box.poly defines an open region, so the -c switch must be used to prevent the automatic removal of concavities (which would eliminate the whole triangulation).

triangle -pc box
produces the constrained Delaunay triangulation illustrated below. The -c switch causes Triangle to triangulate the convex hull of the PSLG.

A conforming constrained Delaunay triangulation of a PSLG can be generated by use of the -q, -a, or -u switch, in addition to the -p switch. If you don't wish to enforce any angle or area constraints, use `-q0', which requests quality meshing with a minimum angle of zero. The result is demonstrated below.

triangle -pq0 face

A conforming Delaunay triangulation of a PSLG can be generated as above, with the addition of the -D switch to ensure that all the triangles of the final mesh are Delaunay (and not just constrained Delaunay).

triangle -pq0L face

Return to Triangle home page.