Voronoi Diagram and Delaunay Triangulation
Lekcija 9 Sergio Cabello sergio.cabello@fmf.uni-lj.si FMF Univerza v Ljubljani Edited from slides by Antoine Vigneron
Sergio Cabello RC – Voronoi – Delaunay
Voronoi Diagram and Delaunay Triangulation Lekcija 9 Sergio Cabello - - PowerPoint PPT Presentation
Voronoi Diagram and Delaunay Triangulation Lekcija 9 Sergio Cabello sergio.cabello@fmf.uni-lj.si FMF Univerza v Ljubljani Edited from slides by Antoine Vigneron Sergio Cabello RC Voronoi Delaunay Outline this lecture: mainly
Sergio Cabello RC – Voronoi – Delaunay
◮ this lecture: mainly geometry without algorithms ◮ geometric objects
◮ two motivations
◮ chapter 7 of the book on Voronoi diagram available online Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ what is it? ◮ a dataset S of n points (called sites) in I
◮ let S = {s1, s2 . . . sn} ◮ query point q, find closest site to q (=proximity queries)
Sergio Cabello RC – Voronoi – Delaunay
◮ how to address proximity? ◮ draw a diagram ◮ example with |S| = 2:
◮ this is the Voronoi diagram of S = {s1, s2} Sergio Cabello RC – Voronoi – Delaunay
◮ Voronoi diagram of S = {s1, s2, s3}
◮ v: a Voronoi vertex. Center of the circumcircle of triangle s1s2s3 ◮ V(si): Voronoi cell of si ◮ We have Voronoi vertices, edges, and cells. Sergio Cabello RC – Voronoi – Delaunay
◮ V(si) = {x ∈ I
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ For any set of vertical lines, there are sites whose Voronoi
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ we denote
Sergio Cabello RC – Voronoi – Delaunay
◮ it follows that
Sergio Cabello RC – Voronoi – Delaunay
◮ the Voronoi diagram of S is not a planar graph
◮ all the cells are convex, hence connected ◮ the Voronoi diagram has n faces, one for each site Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ V(si) is an intersection of n half–planes ◮ so it can be computed in O(n log n) time ◮ we can compute the Voronoi diagram of S in O(n2 log n) time ◮ we associate it with a point location data structure ◮ so we can answer proximity queries in:
◮ if the Voronoi diagram has complexity Θ(n),
Sergio Cabello RC – Voronoi – Delaunay
◮ ∀x ∈ V(si) the disk through si centered at x contains no other
Sergio Cabello RC – Voronoi – Delaunay
◮ a point x on a Voronoi edge is equidistant to two nearest sites si
◮ hence the circle centered at x through si and sj contains no site
Sergio Cabello RC – Voronoi – Delaunay
◮ general position assumption:
◮ a degenerate case: 4 sites lie on the same circle Sergio Cabello RC – Voronoi – Delaunay
◮ a Voronoi vertex v is equidistant to three nearest sites si, sj and
◮ hence the circle centered at v through si, sj and sk contains no
◮ by our general position assumption, each Voronoi vertex has
Sergio Cabello RC – Voronoi – Delaunay
◮ if V(si) is bounded, then it is a convex polygon ◮ V(si) is unbounded if and only if si is a vertex of CH(S)
◮ Proof? Sergio Cabello RC – Voronoi – Delaunay
◮ knowing the Voronoi diagram, we can compute the convex hull
◮ computing a Voronoi diagram takes Ω(n log n) time ◮ we will see an optimal O(n log n) time randomized algorithm ◮ there is also a deterministic O(n log n) time algorithm
Sergio Cabello RC – Voronoi – Delaunay
◮ sites need not be points
◮ we can also use different distance functions
◮ the Voronoi diagram can also be defined in I
Sergio Cabello RC – Voronoi – Delaunay
◮ k-Voronoi diagram: divide the plane into regions that have the
◮ 1-Voronoi = Voronoi ◮ k − 1)-Voronoi = furthest-point Voronoi
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ we are given a set S of n points in I
◮ we want to find a planar graph with set of vertices S, where
◮ this is called a triangulation of S Sergio Cabello RC – Voronoi – Delaunay
◮ the Delaunay triangulation of the same set ◮ looks nicer ◮ many interesting properties Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ let S be a set of n points in I
◮ S is in general position: no 4 points are cocircular ◮ the Delaunay triangulation DT (S) of S is the embedding of the
Sergio Cabello RC – Voronoi – Delaunay
◮ DT (S): is it well defined? ◮ we need to prove that
⋆ Proof?
⋆ the number of edges in a face of DT (S) is the degree
⋆ general position assumption implies that Voronoi
Sergio Cabello RC – Voronoi – Delaunay
◮ the convex hull of S is the complement of the unbounded face of
Sergio Cabello RC – Voronoi – Delaunay
◮ the circumcircle of any triangle in DT (S) is empty (contains no
◮ Proof? Sergio Cabello RC – Voronoi – Delaunay
◮ sisj is an edge of DT (S) iff there is an empty circle through si
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ any two closest sites sisj are connected by an edge of DT (S)
Sergio Cabello RC – Voronoi – Delaunay
Sergio Cabello RC – Voronoi – Delaunay
◮ Euclidean graph
◮ Euclidean Minimum Spanning Tree: minimum spanning tree of
◮ Property: the EMST is a subgraph of DT (S) ◮ Proof? Exercises. Sergio Cabello RC – Voronoi – Delaunay
◮ let T be a triangulation of S ◮ angle sequence Θ(T ): sequence of all the angles of the triangle
◮ example
◮ Θ(T ) = (π/4, π/4, π/3, π/3, π/3, π/2) ◮ comparison: let T and T ′ be two triangulations of S ◮ we compare Θ(T ) and Θ(T ′) using lexicographic order ◮ example: (1, 1, 3, 4, 5) < (1, 2, 4, 4, 4) Sergio Cabello RC – Voronoi – Delaunay
◮ Theorem: the angle sequence of DT (S) is maximal among all
◮ in other words: the Delaunay triangulation maximizes the
◮ intuition: avoids skinny triangles
Sergio Cabello RC – Voronoi – Delaunay
◮ idea:
Sergio Cabello RC – Voronoi – Delaunay
◮ several possible Delaunay triangulations
◮ example: ◮ two possibilities Sergio Cabello RC – Voronoi – Delaunay
◮ generating good meshes
◮ statistics: natural neighbor interpolation ◮ height interpolation ◮ shape reconstruction ◮ . . . ◮ www.voronoi.com Sergio Cabello RC – Voronoi – Delaunay
◮ next lecture: an O(n log n) time RIC of the Delaunay
◮ from the Delaunay triangulation, we can obtain the Voronoi
◮ the converse is also true, so these two problems are equivalent in
◮ there are O(n log n) time deterministic algorithms
⋆ many heuristics to improve Sergio Cabello RC – Voronoi – Delaunay