Voronoi Diagrams, Delauney Triangulation




CS216

Chris Pollett

Apr 22, 2010

Outline

Introduction

Triangulating Polygons

Definition. A diagonal of a polygon `P` is a segment `\vec u \vecv` between two distinct vertices `vec u`, `vec v` of `P` whose interior is contained in `P`.

Diagonal Lemma

Every polygon `P` in `\mathbb{R}^2` with `n > 3` vertices has a diagonal.

Proof. Order the vertices of `P` by their x-coordinates and, of the left-most vertices, let `vec u` be the one with smallest y-coordinate. Let `vec v` and `vec w` be the two vertices of `P` adjacent to `vec u`. If `vec vw` is a diagonal we are done. Otherwise, let S be the set of vertices of `P` other than `vec u, vec v, vec w` that lie in the triangle `vec u vec v vecw`. Choose a vertex `vec u'` in `S` that is farthest from the line through `vec v`, `vec w`. We claim that `vec u vec u'` is a diagonal. To see this notice, that the line parallel to `vec v vec w` through `vec u'` divides the plane into two sides. The halfplane away from `vec u` must contain all the points of `S` and any edges between these points.

Triangulation Theorem

Every polygon can be triangulated. If the polygon has `n` vertices, then each of its triangulations will have `n-2` vertices.

Proof. Let `P` be a polygon in `mathbb{R}^2` with `n ≥ 3` vertices. The proof is by induction on `n`. The `n=3` case is trivial. For `n > 3` assume the theorem is true for all `3 \leq m < n`. By the previous lemma, `P` has a diagonal, and this diagonal divides `P` into two polygons, each have few than `n` vertices. Suppose `P_1, P_2` have respectively `n_1, n_2 < n` vertices. By induction, these polygons will have a triangulation on `n_1 -2` and `n_2 -2` vertices respectively. As `P_1, P_2` share two vertices we have `n_1 + n_2 = n + 2`. So the complete triangulation of `P` will have `n_1 -2 + n_2 -2 = n_1 + n_2 -4 = n - 2` vertices as desired.

Voronoi Diagrams

Example Voronoi partitions of the plane

Delauney Triangulation

An example Delauney Graph which isn't a triangulation

Why the Delauney Triangulation is a Good Triangulation

Theorem Let `S` be a finite set of points in the plane and let `K` be a triangulation of `S`. Then `K` is a Delauney Triangulation iff the circle circumscribing any triangle in `K` does not contain any point `S` in its interior.

Definition. Let `S` be a finite set of points in the plane and let `K` be a triangulation of `S`. Suppose `K` has `m` triangles and order the `3m` angles `a_i` of these triangles in increasing order to create a so-called "angle vector": `(a_1, \ldots, a_(3m))`. The triangulation is called angle-optimal for `S` if `(a_1, \ldots, a_(3m)) \geq (b_1, \ldots, b_(3m))` for any other triangulation (lex-order).

Theorem. Let `S` be a finite set of points in the plane.

  1. Any angle-optimal triangulation of `S` is a Delauney Triangulation of `S`.
  2. Any Delauney Triangulation of `S` maximizes the minimal angles of the triangles in any triangulation of `S`. If no four points of S lie on a circle, then the Delauney Triangulation of `S` is angle optimal.

Computing a Voronoi Diagram

Algorithm to compute Voronoi diagram