Histograms of Triangle Data
is a FORTRAN90 program which
creates a histogram of data
over the interior of the unit triangle in 2D.
The unit triangle has the vertices (1,0), (0,1), (0,0).
"Data" in the unit triangle is assumed to take the form of a file,
containing a list of points that lie in the triangle.
The sides of the triangle can each be
divided into N subintervals, and by connecting them, the result is
N*N subtriangles of the same area.
The program then determines the number of points that lie within
each subtriangle, and prints this list.
This program is particularly suitable for investigating whether
a set of points in the unit triangle are close to a uniformly
sampling, or if there is some bias in the selection.
triangle_histogram data_file n
data_file is the file containing the sample points;
n is the number of subintervals into which each side
of the unit triangle is to be divided.
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
TRIANGLE_HISTOGRAM is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
a FORTRAN90 program which
produces random samples from a number of regions, including triangles.
a dataset directory which
contains sets of sample points drawn from the unit triangle.
Monte Carlo Optimization, Simulation and Sensitivity of
Generating Random Points in a Triangle,
in Graphics Gems I,
edited by Andrew Glassner,
AP Professional, 1990,
Examples and Tests:
B10000 is a "bad" set of sample points.
G10000 is a "good" set of sample points.
List of Routines:
MAIN is the main program for TRIANGLE_HISTOGRAM.
CH_CAP capitalizes a single character.
CH_EQI is a case insensitive comparison of two characters for equality.
CH_TO_DIGIT returns the integer value of a base 10 digit.
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
FILE_ROW_COUNT counts the number of row records in a file.
GET_UNIT returns a free FORTRAN unit number.
I4VEC_STD returns the standard deviation of an I4VEC.
R8MAT_DATA_READ reads data from an R8MAT file.
R8MAT_HEADER_READ reads the header from an R8MAT file.
R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
S_TO_I4 reads an integer value from a string.
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.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 13 August 2009.