cvt_1d_nonuniform


cvt_1d_nonuniform, a MATLAB code 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 MIT license

Languages:

cvt_1d_nonuniform is available in a MATLAB version.

Related Data and Programs:

ccvt_reflect, a MATLAB code 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 code which computes cvt's.

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

cvt_1d_lloyd, a MATLAB code 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 code 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 code 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 code which calculates a centroidal voronoi tessellation (cvt) over a circle with uniform density.

cvtm_1d, a MATLAB code 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 code which estimates a periodic centroidal voronoi tessellation (cvtp) in the periodic interval [0,1], using a version of lloyd's iteration.

florida_cvt_geo, a MATLAB code which explores the creation of a centroidal voronoi tessellation (cvt) of the state of florida, based solely on geometric considerations.

test_triangulation, a MATLAB code 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.