TRIANGLE_ANALYZE
Compute Properties of a Triangle
TRIANGLE_ANALYZE
is a C++ program which
reads a triangle defined in a file, and uses the TRIANGLE_PROPERTIES library to
compute angles, area, centroid, circumcircle, edge lengths, incircle, orientation,
orthocenter, and quality.
Usage:
triangle_analyze 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_ANALYZE is available in
a C version and
a C++ 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.
TRIANGLE_INTERPOLATE,
a C++ library which
shows how vertex data can be interpolated at any point
in the interior of a triangle.
TRIANGLE_PROPERTIES,
a C++ program which
computes properties of triangles.
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_ANALYZE.
-
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.
-
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_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.
-
R8MAT_DATA_READ reads the data from an R8MAT file.
-
R8MAT_HEADER_READ reads the header from an R8MAT file.
-
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_NORM 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_CONTAINS_POINT_2D finds if a point is inside 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 08 November 2015.