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.

Related Data and Programs:


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_properties, a C code which computes properties of a tetrahedron in 3D, including the centroid, circumsphere, dihedral angles, edge lengths, face angles, face areas, insphere, quality, solid angles, and volume.

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

Source Code:

Last revised on 28 April 2022.