cvt_metric


cvt_metric, a MATLAB code which computes a Centroidal Voronoi Tessellation (CVT) calculation under a user-specified spatially varying metric function.

What we are saying is that the distance between two vectors a and b is no longer simply the Euclidean distance, but rather a quadratic form involving a spatially varying, positive definite symmetric matrix that represents the metric:


        d(a,b) = ( a - b )' * A * ( a - b )
      
We assume that A varies spatially, but we would prefer to simplify this variation in a manner that saves us computational effort, while allowing us to recover the variational behavior if we are willing to use a finer spatial sampling.

The metric function is distinct from the density function, which can also be used in these kinds of problems. The density function is weaker, and corresponds to a metric whose matrix at any point is a multiple of the identity matrix. A density function approach cannot result in the more interesting anisotropic effects that an arbitrary metric produces.

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

cvt_metric is available in a MATLAB version and an Octave version.

Related Data and Programs:

cvt_metric_test

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, a MATLAB code which allows the user to watch the evolution of a CVT computed over a 1D interval with a nonuniform density.

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.

cvt_demo, a MATLAB code which allows the user to generate a CVT over several geometric regions using uniform or nonuniform 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 creates a centroidal Voronoi Tessellation (CVT) of the state of Florida, based solely on geometric considerations.

lcvt, a MATLAB code which computes a Latinized Centroidal Voronoi Tessellation.

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. 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 22 September 2024.