TRIANGULATE
Triangulate a Polygonal Region
TRIANGULATE is an executable program, written in C, that
triangulates a polygonal region. The region need not be convex.
The polygon is defined by an input file which gives the coordinates
of the nodes of the polygon, in counterclockwise order. The
coordinates are expected to be integers.
The output of the program is a PostScript file which shows the
polygon and its triangulation. The text of the PostScript file
includes comments that describe the triangulation in terms of
the pairs of vertices that were connected to make each diagonal.
Related Data and Programs:
TRIANGLE
is an executable C program for the triangulation of a region.
Reference:
-
Joseph ORourke,
Computational Geometry,
Second Edition,
Cambridge, 1998,
ISBN: 0521649765,
LC: QA448.D38.
Source Code:
COMB generates a "comb" polygon, a somewhat tricky shape
that can be used as an input to the triangulation program.
Files you may copy include:
-
comb.c, the source code;
-
comb.csh,
a shell script to compile, link and load the source code.
TRIANGULATE reads a file definining a polygon, and determines
an appropriate triangulation.
Files you may copy include:
Source Code:
COMB10 is an example of a "comb" polygon of 10 vertices
Files you may copy include:
I18 is an example of a complicated nonconvex polygon.
Files you may copy include:
SNAKE is an example defining a "snake" polygon.
Files you may copy include:
SQUARE is an example defining a square.
Files you may copy include:
TRIANGLE is an example defining a triangle.
Files you may copy include:
List of Routines:
-
MAIN is the main program for TRIANGULATE.
-
AREA_POLY2 returns the area of a polygon.
-
AREA_SIGN returns the sign of the area defined by three points.
-
AREA2 returns twice the signed area of a triangle.
-
BETWEEN returns TRUE iff point C lies on the closed segement AB.
-
COLLINEAR is TRUE if the points A, B and C are collinear.
-
DIAGONAL returns TRUE iff (A,B) is a proper internal diagonal of the polygon.
-
DIAGONALIE returns TRUE iff (A,B) is a proper diagonal of a polygon.
-
EAR_INIT initializes the data structures, and calls Triangulate2 to clip ears.
-
IN_CONE returns TRUE iff the diagonal (A,B) is strictly internal.
-
INTERSECT returns TRUE iff segments AB and CD intersect.
-
INTERSECT_PROP returns true if and only if AB properly intersects CD.
-
LEFT is TRUE if C is on the left side of the line from A to B.
-
LEFT_ON is TRUE if C is to the left side, or on, the line from A to B.
-
MAKE_NULL_VERTEX makes a vertex.
-
PRINT_POLY prints the polygon data.
-
PRINT_VERTICES prints the vertices.
-
READ_VERTICES reads the polygon vertice from standard input.
-
SCALE_DATA determines the scale for the polygonal data.
-
TRIANGULATE prints N-3 diagonals which triangulate the polygon.
-
XOR returns the exclusive OR of two values.
You can go up one level to
the C source codes.
Last revised on 02 May 2007.