CVT_TRIANGULATION is a FORTRAN90 program which applies Centroidal Voronoi Tessellation (CVT) methods to produce triangularizations of various test regions.
Note that, when using this program, we begin with a region, which is to be filled up with a number of (unspecified) points and triangularized.
Other programs, such as TABLE_DELAUNAY are available for the case where the points are already given, and only the triangles need to be determined.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
CVT_TRIANGULATION is available in a FORTRAN90 version.
CVT_TET_MESH, a FORTRAN90 program which applies CVT methods to produce a tetrahedral mesh of various test regions in 3D.
DISTMESH, a MATLAB program which takes the definition of a 2D region, and fills it up with a set of nodes, and triangulates those nodes to make a triangulation of the region. The region may be nonconvex and may include holes; the user may request a specific density for the nodes, and may require certain points to be in the set of nodes.
HEX_GRID_TRIANGULATE, a FORTRAN90 program which uses this library of test regions and computes points on a hexagonal grid inside each region.
PLOT_POINTS, a FORTRAN90 program which can be used to make simple plots of the computed points. For nonconvex regions, the Delaunay plots can be confusing. The plotting program is simple-minded, and merrily draws sides of triangles that go through holes or areas exterior to the region. In a few cases, it has been possible to draw the outline of the boundary of the region, but PLOT_POINTS cannot do very much in this regard.
TABLE, a file format which is used for the output files containing the CVT points.
TABLE_DELAUNAY, a FORTRAN90 program which reads in a TABLE file of points and writes out a corresponding triangulation.
TEST_TRIANGULATION, a FORTRAN90 library which can set up a number of triangulation test problems.
TRIANGLE, a C program which computes a triangulation of a geometric region.
TRIANGULATION, a FORTRAN90 library which carries out various operations on order 3 ("linear") or order 6 ("quadratic") triangulations.
TRIANGULATION_BOUNDARY_NODES, a FORTRAN90 program which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.
TRIANGULATION_DISPLAY_OPENGL, a C++ program which reads files defining a triangulation and displays an image using Open GL.
TRIANGULATION_L2Q, a FORTRAN90 program which reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.
TRIANGULATION_MASK, a FORTRAN90 program which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.
TRIANGULATION_ORDER3, a data directory which contains a description and examples of order 3 triangulations.
TRIANGULATION_ORDER6, a data directory which contains a description and examples of order 6 triangulations.
TRIANGULATION_ORIENT, a FORTRAN90 program which reads data defining a triangulation, makes sure that every triangle has positive orientation, and if not, writes a corrected triangle file.
TRIANGULATION_PLOT, a FORTRAN90 program which reads data defining a triangulation and creates a PostScript image of the nodes and triangles.
TRIANGULATION_Q2L, a FORTRAN90 program which reads data defining a 6-node triangulation, and subdivides each triangle into 4 3-node triangles, writing the resulting triangulation to a file.
TRIANGULATION_QUALITY, a FORTRAN90 program which reads data defining a triangulation and computes a number of quality measures.
TRIANGULATION_RCM, a FORTRAN90 program which reads data defining a triangulation, determines an ordering of the nodes that will reduce the bandwidth of the adjacency matrix, and writes the new triangulation information to a file.
TRIANGULATION_REFINE, a FORTRAN90 program which reads data defining a triangulation, replaces each triangle by four congruent smaller ones, and writes the new triangulation information to a file.
TRIANGULATION_TRIANGLE_NEIGHBORS, a FORTRAN90 program which reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.
There are some files for use with the PLOT_POINTS program:
Region 1 is the circle:
Region 2 is the circle with a circular hole:
Region 3 is the square with a circular hole:
Region 4 is the hexagon with a hexagonal hole:
Region 5 is the horn:
Region 6 is the superellipse with the superelliptical hole:
Region 7 is the "bicycle seat":
Region 8 is the pie slice:
Region 9 is the square with two hexagonal holes:
Region 10 is the unit square:
Region 11 is the L-shaped region:
Region 12 is the H-shaped region:
Region 13 is the fork:
Region 14 is Lake Alpha, with Beta Island:
You can go up one level to the FORTRAN90 source codes.