**polygon**,
a C++ code which
computes properties of an arbitrary polygon in the plane, defined
by a sequence of vertices, including interior angles, area, centroid,
containment of a point, convexity, counter clockwise ordering, diameter,
distance to a point, inradius, lattice area, nearest point in set,
outradius, uniform sampling, and triangulation.

The computer code and data files made available on this web page are distributed under the GNU LGPL license.

**polygon** is available in
a C version and
a C++ version and
a Fortran90 version and
a MATLAB version and
an Octave version and
a Python version.

ellipse, a C++ code which carries out geometric calculations for ellipses and ellipsoids, including area, distance to a point, eccentricity, perimeter, points along the perimeter, random sampling, conversion between standard and quadratic forms.

geometry, a C++ code which performs geometric calculations in 2, 3 and N dimensional space.

hypersphere, a C++ code which carries out various operations for an M-dimensional hypersphere, including converting between Cartesian and spherical coordinates, stereographic projection, sampling the surface of the sphere, and computing the surface area and volume.

polygon_integrals, a C++ code which returns the exact value of the integral of any monomial over the interior of a polygon in 2D.

polygon_monte_carlo, a C++ code which applies a Monte Carlo method to estimate the integral of a function over the interior of a polygon in 2D.

POLYGON_TRIANGULATE, a C++ code which triangulates a possibly nonconvex polygon, and which can use gnuplot to display the external edges and internal diagonals of the triangulation.

tetrahedron, a C++ code which computes properties including the centroid, circumsphere, dihedral angles, edge lengths, face angles, face areas, insphere, quality, solid angles, and volume of a tetrahedron in 3D.

triangle, a C++ code which computes properties, including angles, area, centroid, circumcircle, edge lengths, incircle, orientation, orthocenter, and quality, of a triangle in 2D.

- polygon.cpp, the source code.
- polygon.sh, compiles the source code.
- polygon.hpp, the include file.