TRIANGLE_PROPERTIES
Compute Properties of a Triangle
TRIANGLE_PROPERTIES
is a C++ program which
computes properties, including angles, area, centroid, circumcircle,
edge lengths, incircle, orientation, orthocenter, and quality,
of a triangle in 2D.
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;
Usage:
triangle_properties filename
where filename contains the vertex coordinates.
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 FORTRAN77 version and
a FORTRAN90 version and
a MATLAB 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 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_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.
TRIANGLES,
a dataset directory which
contains examples of triangles;
Source Code:
Examples and Tests:
-
tex1.txt, example 1.
-
tex1_properties.txt,
the output file.
-
tex2.txt, example 2.
-
tex2_properties.txt,
the output file.
-
tex3.txt, example 3.
-
tex3_properties.txt,
the output file.
-
tex4.txt, example 4.
-
tex4_properties.txt,
the output file.
-
tex5.txt, example 5.
-
tex5_properties.txt,
the output file.
-
tex6.txt, example 6.
-
tex6_properties.txt,
the output file.
-
tex7.txt, example 7.
-
tex7_properties.txt,
the output file.
-
tex8.txt, example 8.
-
tex8_properties.txt,
the output file.
-
triangle_cap.txt,
example of a "cap" triangle.
-
triangle_cap_properties.txt,
the output file.
-
triangle_equilateral.txt,
example of an equilateral triangle.
-
triangle_equilateral_properties.txt,
the output file.
-
triangle_needle.txt,
example of a "needle" triangle.
-
triangle_needle_properties.txt,
the output file.
-
triangle_ref.txt,
example of a reference triangle.
-
triangle_ref_properties.txt,
the output file.
-
triangle_right.txt,
example of a right triangle.
-
triangle_right_properties.txt,
the output file.
List of Routines:
-
MAIN is the main program for TRIANGLE_PROPERTIES.
-
ARC_COSINE computes the arc cosine function, with argument truncation.
-
CH_CAP capitalizes a single character.
-
CH_EQI is true if two characters are equal, disregarding case.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
DTABLE_DATA_READ reads the data from a DTABLE file.
-
DTABLE_HEADER_READ reads the header from a DTABLE file.
-
FILE_COLUMN_COUNT counts the columns in the first line of a file.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
I4_MAX returns the maximum of two I4's.
-
I4_MIN returns the minimum of two I4's.
-
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_2D computes a line perpendicular to a line and through a point.
-
LINE_EXP2IMP_2D converts an explicit line to implicit form in 2D.
-
LINE_IMP_IS_DEGENERATE_2D finds if an implicit point is degenerate in 2D.
-
LINES_EXP_INT_2D determines where two explicit lines intersect in 2D.
-
LINES_IMP_INT_2D determines where two implicit lines intersect in 2D.
-
R8_ABS returns the absolute value of an R8.
-
R8_HUGE returns a "huge" R8.
-
R8_MAX returns the maximum of two R8's.
-
R8_MIN returns the minimum of two R8's.
-
R8MAT_INVERSE_2D inverts a 2 by 2 R8MAT using Cramer's rule.
-
R8MAT_SOLVE uses Gauss-Jordan 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 two R8VEC's are equal.
-
R8VEC_LENGTH returns the Euclidean length of an R8VEC.
-
R8VEC_PRINT prints an R8VEC.
-
S_LEN_TRIM returns the length of a string to the last nonblank.
-
S_TO_R8 reads an R8 from a string.
-
S_TO_R8VEC reads an R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TRIANGLE_ANGLES_2D computes the angles of a triangle in 2D.
-
TRIANGLE_AREA_2D computes the area of a triangle in 2D.
-
TRIANGLE_CENTROID_2D computes the centroid of a triangle in 2D.
-
TRIANGLE_CIRCUMCIRCLE_2D computes the circumcircle of a triangle in 2D.
-
TRIANGLE_EDGE_LENGTH_2D returns edge lengths of a triangle in 2D.
-
TRIANGLE_INCIRCLE_2D computes the inscribed circle of a triangle in 2D.
-
TRIANGLE_ORIENTATION_2D determines the orientation of a triangle in 2D.
-
TRIANGLE_ORTHOCENTER_2D computes the orthocenter of a triangle in 2D.
-
TRIANGLE_QUALITY_2D: "quality" of a triangle in 2D.
You can go up one level to
the C++ source codes.
Last revised on 18 July 2009.