SXYZ_VORONOI
Process (spherical) XYZ files through STRIPACK
SXYZ_VORONOI is a FORTRAN90 program
which computes and plots Delaunay and Voronoi diagrams on a sphere.
SXYZ_VORONOI takes as input a
TABLE file.
Each line of the file contains the coordinates of one point on
the unit sphere. It passes this data to Renka's code
STRIPACK, which
computes the Voronoi tessellation and the Delaunay
triangulation, creating simple plots as
Encapsulated PostScript Files
(EPS files).
The STRIPACK plots are simple 2D projections, and we simply
picked one view of the sphere. In some cases, this is not
enough: we want to see the whole thing. For this purpose,
we have modified the code so that it now also outputs
XYZ files that contain information about the Delaunay triangulation
and Voronoi diagrams. This data can then be passed through
the IVREAD
conversion program to make
Inventor files which
can be viewed (on an SGI, anyway) with the ivview program.
Related Data and Programs:
STRIPACK
is used by SXYZ_VORONOI to compute the Voronoi tessellation
and Delaunay triangulation of the points on the sphere.
TABLE
is a format used for the input to SXYZ_VORONOI and the output
XYZ files.
Reference:
-
Qiang Du, Vance Faber, Max Gunzburger,
Centroidal Voronoi Tesselations: Applications and Algorithms,
SIAM Review, Volume 41, 1999, pages 637-676.
-
Robert Renka,
Algorithm 772: STRIPACK,
Delaunay Triangulation and Voronoi Diagram on the Surface
of a Sphere,
ACM Transactions on Mathematical Software,
Volume 23, Number 3, 1997.
-
Edward Saff, Arno Kuijlaars,
Distributing Many Points on a Sphere,
The Mathematical Intelligencer,
Volume 19, Number 1, 1997, pages 5-11.
Source Code:
Examples and Tests:
GEN_00010 is a test set of 10 points:
GEN_00100 is a test set of 100 points:
List of Routines:
-
MAIN is the main program for SXY_VORONOI.
-
STRIPACK_INTERFACE calls STRIPACK routines.
-
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_ROW_COUNT counts the number of rows in a file.
-
GET_UNIT returns a free FORTRAN unit number.
-
POLY_COUNT counts the number of polygons of each size in the diagram.
-
S_TO_R8 reads an R8 from a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TIMESTRING writes the current YMDHMS date into a string.
-
TR_TO_XYZ makes an XYZ file of Delaunay triangulation data.
-
VR_TO_XYZ makes an XYZ file of Voronoi diagram data.
-
WORD_NEXT_READ "reads" words from a string, one at a time.
-
XYZ_READ reads graphics information from an XYZ file.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 15 November 2006.