TRIANGLE_PROPERTIES
Properties of a Triangle
TRIANGLE_PROPERTIES
is a C++ library which
can compute properties of a triangle, including angles, area, centroid, circumcircle,
edge lengths, incircle, orientation, orthocenter, and quality.
These properties include:

Angles;

Area;

Centroid;

Circumcircle (center and radius);

Edge lengths;

Incircle (center and radius);

Orientation;

Orthocenter;

Quality: ratio of incircle radius / circumcircle radius;
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
TRIANGLE_PROPERTIES is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
GEOMETRY,
a C++ library which
performs geometric calculations in 2, 3 and N dimensional space.
HYPERSPHERE_PROPERTIES,
a C++ library which
carries out various operations for an Mdimensional hypersphere, including
converting between Cartesian and spherical coordinates,
stereographic projection, sampling the surface of the sphere, and
computing the surface area and volume.
POLYGON_PROPERTIES,
a C++ library 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, diameter, distance to a point,
inradius, lattice area, nearest point in set, outradius, uniform sampling.
TETRAHEDRON_PROPERTIES,
a C++ program which
computes properties of a given tetrahedron.
TRIANGLE_ANALYZE,
a C++ program which
reads a triangle from a file, and then reports various properties.
TRIANGLE_INTERPOLATE,
a C++ library which
shows how vertex data can be interpolated at any point
in the interior of a triangle.
TRIANGLES,
a dataset directory which
contains examples of triangles;
Source Code:
Examples and Tests:
List of Routines:

I4_MODP returns the nonnegative remainder of I4 division.

I4_WRAP forces an I4 to lie between given limits by wrapping.

LINE_EXP_IS_DEGENERATE_ND finds if an explicit line is degenerate in ND.

LINE_EXP_PERP computes a line perpendicular to a line and through a point.

LINE_EXP2IMP converts an explicit line to implicit form in 2D.

LINE_IMP_IS_DEGENERATE finds if an implicit point is degenerate in 2D.

LINES_EXP_INT determines where two explicit lines intersect in 2D.

LINES_IMP_INT determines where two implicit lines intersect in 2D.

R8_ACOS computes the arc cosine function, with argument truncation.

R8_HUGE returns a "huge" R8.

R8_MAX returns the maximum of two R8's.

R8_MIN returns the minimum of two R8's.

R8_UNIFORM_01 returns a pseudorandom R8 scaled to [0,1].

R8MAT_INVERSE_2D inverts a 2 by 2 R8MAT using Cramer's rule.

R8MAT_SOLVE uses GaussJordan elimination to solve an N by N linear system.

R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.

R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.

R8VEC_COPY copies an R8VEC.

R8VEC_EQ is true if two R8VEC's are equal.

R8VEC_NORM returns the L2 norm of an R8VEC.

R8VEC_PRINT prints an R8VEC.

SEGMENT_POINT_DIST: distance ( line segment, point ) in 2D.

SEGMENT_POINT_NEAR finds the point on a line segment nearest a point in 2D.

TIMESTAMP prints the current YMDHMS date as a time stamp.

TRIANGLE_ANGLES computes the angles of a triangle in 2D.

TRIANGLE_AREA computes the area of a triangle in 2D.

TRIANGLE_CENTROID computes the centroid of a triangle in 2D.

TRIANGLE_CIRCUMCIRCLE computes the circumcircle of a triangle in 2D.

TRIANGLE_CONTAINS_POINT finds if a point is inside a triangle in 2D.

TRIANGLE_DIAMETER computes the diameter of a triangle in 2D.

TRIANGLE_EDGE_LENGTH returns edge lengths of a triangle in 2D.

TRIANGLE_INCIRCLE computes the inscribed circle of a triangle in 2D.

TRIANGLE_ORIENTATION determines the orientation of a triangle in 2D.

TRIANGLE_ORTHOCENTER computes the orthocenter of a triangle in 2D.

TRIANGLE_POINT_DIST: distance ( triangle, point ) in 2D.

TRIANGLE_POINT_NEAR computes the nearest triangle point to a point in 2D.

TRIANGLE_QUALITY: "quality" of a triangle in 2D.

TRIANGLE_REFERENCE_SAMPLE returns random points in the reference triangle.

TRIANGLE_SAMPLE returns random points in a triangle.

TRIANGLE_XSI_TO_XY converts from barycentric to XY coordinates in 2D.

TRIANGLE_XY_TO_XSI converts from XY to barycentric in 2D.
You can go up one level to
the C++ source codes.
Last revised on 09 November 2015.