简体   繁体   中英

Equivalent to Lloyd's algorithm using solelly the Delaunay triangulation

I'm trying to develop a program, where in a 2D space, a random set of points generates a graph using Delaunay triangulations.

For this part there is a great amount of algorithms which can do so.

The second part I want to implement consists in performing a relaxation in the points, ie, allowing them to shift in the 2D space in order to be equally distant from each others.

I know that for Voronoi diagrams (the dual graph of Delaunay triangulations), Lloyd's algorithm can perform that task, but I can't seem to find any type of algorithm independent from this diagram structure (which I wouldn't really need to compute except for this relaxation step).

Any hints on type of algorithm I need?

Thanks in advance!

If you have access to the Delaunay triangulation already then you also -- implicitly -- have a representation of the Voronoi diagram.

For instance, the Voronoi cell surrounding a given vertex xi in the triangulation is the (convex) polygon that connects the circumcentres of the triangles adjacent to xi .

To implement Lloyd's algorithm, one would need to move each vertex to the centroid of it's associated Voronoi polygon, re-compute the Delaunay triangulation, and continue until convergence is reached.

You can try a weighted delaunay triangulation. First compute the normal delaunay triangulation and the center of gravity for each triangle. Then compute the weighted delaunay triangulation with the weights from the first triangulation. It helps to smooth the mesh.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM