Voronoi Tessellations

Now we discuss Voronoi tessellations, the dual graph to a Delaunay triangulation. To define the Voronoi tessellation, let us first define a Voronoi polygon relative to a point set P. A Voronoi polygon Vi of a generator vi is defined by

Vi={pR2:qP,ppiqp},

meaning the polygon is the set of points at least as close to the generator vi as to any other point in P. A Voronoi tessellation, then, denoted V(P), is the union of all Voronoi polygons of each generator pP and their boundaries.

Duality

Let us first prove that the Delaunay triangulation and the Voronoi tessellation are duals of each other. To do this, we need to recognise that any point that is equidistant from three generators must be in a corner of the Voronoi diagram where three Voronoi polygons meet. Mathematically, this means that a point q equidistant from generators pi, pj, and pk can be written as q=ViVjVk. With this fact in mind, let us consider a triangle TijkDT(P). By the Delaunay property, we know that there are no points in P inside the circumcircle of Tijk. We can thus uniquely (assuming there are no cocircular vertices) associate each Tijk with its circumcenter, which by definition is equidistant from the three vertices of Tijk. This circumcenter is therefore the corner of three Voronoi polygons.

To understand why this proves duality, notice that this implies that the Voronoi tessellation can be exactly reconstructed by simply connecting all the circumcenters of the Delaunay triangles. Whenever the triangle is on the boundary of the triangulation, the unbounded Voronoi edge simply comes from the perpendicular bisector of the edge of the triangle on the boundary.

An example of this duality is shown below.

Example block output

Computation

The above proof of duality gives a simple algorithm for constructing the Voronoi tessellation V(P). First, we compute DT(P). Next, compute the circumcenter of each TijkDT(P) and draw a line between any two circumcenters whose triangles share an edge. If the triangle is on the boundary of the triangulation, the unbounded Voronoi edge simply comes from the perpendicular bisector of the edge of the triangle on the boundary. Care does need to be taken for cocircular vertices since in that case there is only one circumcenter for multiple triangles, avoiding drawing duplicate lines.