CCVT_BOX
Animated Constrained CVT Algorithm
CCVT_BOX
is a MATLAB program which
allows the user to specify certain parameters, and then
creates and animates a Centroidal Voronoi Tessellation
of points in a 2D box. After each iteration, points near
the boundary are projected onto the boundary.
The data that the user may set includes:
-
N, the number of points to generate,
-
NPP, the number of (equally spaced) sample points
to be used along the boundary of the box;
-
INIT, initialize the points:
-
file, by reading data from file;
-
'GRID', picking points from a grid;
-
'HALTON', from a Halton sequence;
-
'RAND', using MATLAB's RAND function;
-
'UNIFORM', using a simple uniform RNG;
-
IT_MAX, the maximum number of iterations;
-
IT_FIXED, the number of iterations for which each
set of sample points should be used (between 1 and IT_MAX);
-
SAMPLE, how to conduct the sampling:
-
'GRID', picking points from a grid;
-
'HALTON', from a Halton sequence;
-
'RAND', using MATLAB's RAND function;
-
'UNIFORM', using a simple uniform RNG;
-
SAMPLE_NUM, the number of sampling points:
-
MOVIE_NAME, the number the animation file to be created.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
CCVT_BOX is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
AVI,
a data directory which
contains an animation of the behavior of the generator points
during the iteration, as computed by CCVT_BOX.
CCVT_REFLECT,
a MATLAB program which
tries to achieve the same results
as CCVT_BOX but using a "reflection" idea to force points
onto the boundary of the region.
CVT,
a MATLAB library which
can create CVT's.
CVT,
a dataset directory which
contains files describing a number of CVT's.
CVT_1D_LLOYD,
a MATLAB program which
computes an N-point Centroidal Voronoi Tessellation (CVT)
within the interval [0,1], under a uniform density.
CVT_1D_SAMPLING,
a MATLAB program which
computes an N-point Centroidal Voronoi Tessellation (CVT)
within the interval [0,1], under a uniform density,
using sampling to estimate the Voronoi regions.
CVT_DATASET,
a MATLAB program which
creates a CVT dataset.
Author:
The FORTRAN version of CCVT_BOX was written by Lili Ju.
Reference:
-
Franz Aurenhammer,
Voronoi diagrams -
a study of a fundamental geometric data structure,
ACM Computing Surveys,
Volume 23, Number 3, September 1991, pages 345-405.
-
John Burkardt, Max Gunzburger, Janet Peterson, Rebecca Brannon,
User Manual and Supporting Information for Library of Codes
for Centroidal Voronoi Placement and Associated Zeroth,
First, and Second Moment Determination,
Sandia National Laboratories Technical Report SAND2002-0099,
February 2002.
-
Qiang Du, Vance Faber, Max Gunzburger,
Centroidal Voronoi Tessellations: Applications and Algorithms,
SIAM Review,
Volume 41, Number 4, December 1999, pages 637-676.
-
Qiang Du, Max Gunzburger, Lili Ju,
Meshfree, Probabilistic Determination of Point Sets and Support
Regions for Meshfree Computing,
Computer Methods in Applied Mechanics in Engineering,
Volume 191, 2002, pages 1349-1366.
-
Lili Ju, Qiang Du, Max Gunzburger,
Probabilistic methods for centroidal Voronoi tessellations
and their parallel implementations,
Parallel Computing,
Volume 28, 2002, pages 1477-1500.
Source Code:
Examples and Tests:
You can go up one level to
the MATLAB source codes.
Last revised on 08 November 2006.