Clarification on How to derive Voronoi diagram from Delaunay triangulation in linear time

140 Views Asked by At

Definitions:

Assume that a set of points $P=\{p_1,\dots,p_n\}$ in $\mathbb R^d $ is given. For each $p_i \in P$, the Voronoi region of $p_i$ is defined as:
$Vor(p_i)=\{p\in\mathbb R^d:\forall p_j\in P\quad p_j\neq p_i\implies ||p-p_i||\leq||p-p_j||\}$

And the Voronoi diagram of $P$ is defined as:

$V(P)=\cup_{p_i\in P} Vor(p_i)$

Delaunay triangulation of $P$ is a triangulation $DT(P)$ such that no point in $P$ is inside the circumcircle of any triangle in $DT(P)$.

We know that Delaunay triangulation is the dual of Voronoi diagram.

Connection between DT and VD


Question:

How can we derive Voronoi diagram from Delaunay triangulation in linear time?

So, as the input, we have some points in $\mathbb R^d$ and we know that which points are connected. The output should be the Voronoi diagram of that points.


What I know:

One method was to consider a list in which each element has a point and the triangles having it as a vertex. But it seems that obtaining this list takes more than $O(n)$ time. There was another method which said we have to compute the intersection of perpendicular bisectors of Delaunay edges. The problem with this method is that the bisectors are infinite. I'm looking for a precise algorithm which can be implemented in a computer. So, I know the ideas but it's not enough.

Note: I know that this question has been asked many times. But it seems that the time complexity was not important. Another problem is that the answers were not precise enough.