CVT_1D_NONUNIFORM
Nonuniform Density
CVT Approximation Over Time


CVT_1D_NONUNIFORM is a MATLAB program which allows the user to watch the evolution of an approximate CVT for a nonuniform density function.

The number of generator points defaults to 10, and is stored in an internal variable N.

The points are initialized randomly, or may be set uniformly, or even all set to zero. This is controlled by an internal parameter SAMPLE_FUNCTION_INIT.

The density function d(s) is specified by the value of DENSITY_FUNCTION:

  1. d(s) = s, uniform,
  2. d(s) = sqrt(s)
  3. d(s) = s^(1/3)
  4. d(s) = s^(1/4)
  5. d(s) = log ( e / ( e - s ( e - 1 ) ) )
  6. d(s) = 1/2 + arctan ( 50 * ( s - 1/2) ) / pi (the default)
  7. d(s) = sin ( pi * ( s - 0.5 ) ) (Chebyshev1)

The variable SAMPLE_NUM_CVT controls the number of sample points generated on each CVT iteration. It should be 20 to 100 times greater than the value of N.

The variable SAMPLE_NUM_STEPS controls the number of CVT iterations taken. A value of 100 is probably enough.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

CVT_1D_NONUNIFORM is available in a MATLAB version.

Related Data and Programs:

CCVT_BOX, a MATLAB program which constructs a modified CVT in which some points are forced to lie on the boundary.

CCVT_REFLECT, a MATLAB program which tries to construct a modified CVT in which some points are forced to lie on the boundary, using a reflection idea.

CVT, a MATLAB library which computes CVT's.

CVT, a dataset directory which contains a variety of examples of CVT datasets.

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_nonuniform_test

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_2D_SAMPLING, a MATLAB program which computes an N-point Centroidal Voronoi Tessellation (CVT) within the unit square [0,1]x[0,1], under a uniform density, using sampling to estimate the Voronoi regions.

CVT_CIRCLE_UNIFORM, a MATLAB program which calculates a Centroidal Voronoi Tessellation (CVT) over a circle with uniform density.

CVT_DATASET, a MATLAB program which can create a CVT dataset.

CVT_DEMO, a MATLAB program which demonstrates a CVT calculation.

CVTM_1D, a MATLAB program which estimates a mirror-periodic centroidal Voronoi Tessellation (CVTM) in the periodic interval [0,1], using a version of Lloyd's iteration.

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.

FLORIDA_CVT_GEO, MATLAB programs which explore the creation of a centroidal Voronoi Tessellation (CVT) of the state of Florida, based solely on geometric considerations.

LCVT, a MATLAB library which computes a "Latinized" Centroidal Voronoi Tessellation.

TEST_TRIANGULATION, a MATLAB library which defines the geometry of a number of sample regions.

Reference:

  1. Franz Aurenhammer,
    Voronoi diagrams - a study of a fundamental geometric data structure,
    ACM Computing Surveys,
    Volume 23, Number 3, pages 345-405, September 1991.
  2. 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.
  3. Qiang Du, Vance Faber, Max Gunzburger,
    Centroidal Voronoi Tessellations: Applications and Algorithms,
    SIAM Review, Volume 41, 1999, pages 637-676.

Source Code:


Last revised on 25 December 2018.