CVTP
Centroidal Voronoi Tessellation on Logical Torus
CVTP
is a MATLAB library which
creates CVTP's, that is, Centroidal Voronoi Tessellations
of a periodic region.
A 2D unit logical torus is the unit square, but with "wraparound".
This is the connectivity frequently seen in video games, in which
a spaceship flies off the top of the screen and immediately reappears
at the bottom of the screen. In the general Mdimensional case,
the extreme minimum and maximum values of each coordinate are
identified, and modular arithmetic may be used to determine
distances.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
CVTP is available in
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
CVT,
a MATLAB library which
computes a Centroidal Voronoi Tessellation.
CVT_DATASET,
a MATLAB program which
defines and computes a CVT.
CVTM_1D,
a MATLAB program which
estimates a mirrorperiodic centroidal Voronoi Tessellation (CVTM) in the
periodic interval [0,1], using a version of Lloyd's iteration.
CVTP,
a dataset directory which
contains examples of CVTP's, that is, Centroidal Voronoi Tessellations
on a periodic domain.
CVTP_1D,
a MATLAB program which
estimates a periodic centroidal Voronoi Tessellation (CVTP) in the
periodic interval [0,1], using a version of Lloyd's iteration.
Reference:

Franz Aurenhammer,
Voronoi diagrams 
a study of a fundamental geometric data structure,
ACM Computing Surveys,
Volume 23, Number 3, pages 345405, September 1991.

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 SAND20020099,
February 2002.

Qiang Du, Vance Faber, Max Gunzburger,
Centroidal Voronoi Tessellations: Applications and Algorithms,
SIAM Review, Volume 41, 1999, pages 637676.

Lili Ju, Qiang Du, Max Gunzburger,
Probabilistic methods for centroidal Voronoi tessellations
and their parallel implementations,
Parallel Computing,
Volume 28, 2002, pages 14771500.
Source Code:

cvtp_find_closest.m,
returns the closest generator to a sample point or a periodic
image of that sample point.

cvtp_iteration.m,
carries out one step of the CVT iteration, replacing each generator
by the average of the sample points nearest them.

cvtp_region_sampler.m,
returns sample points from a region.

l4_to_s.m,
converts a logical value to the string 'True' or 'False'.

timestamp.m,
prints the YMDHMS date as a timestamp.
Examples and Tests:
CVT_1X1 is a nonperiodic CVT of 400 points on the region [0,1]x[0,1]:

cvt_1x1.txt,
the list of point coordinates.

cvt_1x1.png,
a PNG image of the set.

cvt_1x1_double.png,
a plot of the data (X,Y) and (X+1,Y) together on the
domain [0,2]x[0,1] showing a boundary effect at X=1.
CVT_1X2 is a nonperiodic CVT of 400 points on the region [0,1]x[0,2]:

cvt_1x2.txt,
the list of point coordinates.

cvt_1x2.png,
a PNG image of the set.

cvt_1x2_double.png,
a plot of the data (X,Y) and (X+1,Y) together on the
domain [0,2]x[0,2] showing a boundary effect at X=1.
CVTP_1X1 is a periodic CVT of 400 points on the region [0,1]x[0,1]:
CVTP_1X2 is a periodic CVT of 400 points on the region [0,1]x[0,2]:
You can go up one level to
the MATLAB source codes.
Last revised on 31 July 2016.