Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams - - PowerPoint PPT Presentation

geometric algorithms
SMART_READER_LITE
LIVE PREVIEW

Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams - - PowerPoint PPT Presentation

Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams Terrain Modeling height measurements p = ( x p , y p , z p ) Terrain Modeling height measurements p = ( x p , y p , z p ) projection ( p ) = ( p x , p y , 0) Terrain


slide-1
SLIDE 1

Geometric Algorithms

Delaunay Triangulations and Voronoi Diagrams

slide-2
SLIDE 2

Terrain Modeling

height measurements p = (xp, yp, zp)

slide-3
SLIDE 3

Terrain Modeling

height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)

slide-4
SLIDE 4

Terrain Modeling

height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)

Interpolation: triangulate & interpolate

slide-5
SLIDE 5

Terrain Modeling

height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)

Interpolation: triangulate & interpolate within triangles

slide-6
SLIDE 6

Terrain Modeling

height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)

Interpolation: triangulate & interpolate within triangles

What is a ‘good’ triangulation?

slide-7
SLIDE 7

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P.

slide-8
SLIDE 8

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

slide-9
SLIDE 9

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
slide-10
SLIDE 10

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
slide-11
SLIDE 11

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull
slide-12
SLIDE 12

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull

CH(P)

slide-13
SLIDE 13

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull

CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges.

slide-14
SLIDE 14

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull

CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges. Compute t and e!

slide-15
SLIDE 15

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull

CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges. Compute t and e! Euler’s formula for connected plane graphs: # faces − # edges + # vertices = 2, also counting the outer face.

slide-16
SLIDE 16

Triangulation of a Point Set

Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:

  • all inner faces are triangles
  • outer face is complement of convex hull

CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has (2n − 2 − h) triangles and (3n − 3 − h) edges.

slide-17
SLIDE 17

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

Lets look at the interpolation along an edge:

slide-18
SLIDE 18

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

Lets look at the interpolation along an edge:

slide-19
SLIDE 19

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

Lets look at the interpolation along an edge:

slide-20
SLIDE 20

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

height 985 height 23 Lets look at the interpolation along an edge:

slide-21
SLIDE 21

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

height 985 height 23 intuition: avoid ‘thin’ triangles! Lets look at the interpolation along an edge:

slide-22
SLIDE 22

Back to Height Interpolation

10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19

height 985 height 23 intuition: avoid ‘thin’ triangles!

  • r: maximize the smallest angle within triangles!

Lets look at the interpolation along an edge:

slide-23
SLIDE 23

Angle-Optimal Triangulations

Def.: T

A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦)

Let T be a triangulation of P with m triangles and 3m

  • vertices. Its angle vector is A(T ) = (α1, . . . , α3m)

where α1, . . . , α3m are the angles of T sorted by increasing value.

slide-24
SLIDE 24

Angle-Optimal Triangulations

Def.: T

A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦) T ′ A(T ′) = (30◦, 30◦, 30◦, 30◦, 120◦, 120◦)

Let T be a triangulation of P with m triangles and 3m

  • vertices. Its angle vector is A(T ) = (α1, . . . , α3m)

where α1, . . . , α3m are the angles of T sorted by increasing value. For two triangulations T and T ′ of P define order A(T ) > A(T ′) as the lexicographical order.

slide-25
SLIDE 25

Angle-Optimal Triangulations

Def.: T

A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦) T ′ A(T ′) = (30◦, 30◦, 30◦, 30◦, 120◦, 120◦)

Let T be a triangulation of P with m triangles and 3m

  • vertices. Its angle vector is A(T ) = (α1, . . . , α3m)

where α1, . . . , α3m are the angles of T sorted by increasing value. For two triangulations T and T ′ of P define order A(T ) > A(T ′) as the lexicographical order. T is angle optimal, if A(T ) ≥ A(T ′) for all triangulations T ′ of P.

slide-26
SLIDE 26

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. e T

slide-27
SLIDE 27

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T

slide-28
SLIDE 28

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T flip(T , e)

slide-29
SLIDE 29

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T ′ T flip(T , e) e′

slide-30
SLIDE 30

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ mini αi = 60◦ e T ′ T flip(T , e) e′

slide-31
SLIDE 31

Edge Flips

Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ mini αi = 60◦ e Obs.: Let e be an illegal edge in T and let T ′ = flip(T , e). Then A(T ′) > A(T ). T ′ T flip(T , e) e′

slide-32
SLIDE 32

Thales Theorem

a Thm 2: if ab is a diameter, then the angle at any third point on the circle c is 90◦. b

slide-33
SLIDE 33

Thales Theorem

a Thm 2: if ab is a diameter, then the angle at any third point on the circle c is 90◦. b Thm 2′: Let C be a circle, ℓ a line intersecting C in points a and b, and p, q, r, s points lying on the same side of ℓ. Suppose that p, q lie on C, r lies inside C, and s lies

  • utside C. Then ∡arb > ∡apb = ∡aqb > ∡asb,

where ∡abc denotes the smaller angle defined by three points a, b, c. a b c c′ e d ∠aeb < ∠acb = ∠ac′b < ∠adb c

slide-34
SLIDE 34

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s C

slide-35
SLIDE 35

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s

ϕpr ϕps ϕrq ϕsq θpr θps θrq θsq

ϕpr > θpr ϕps > θps ϕrq > θrq ϕsq > θsq C

slide-36
SLIDE 36

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s

ϕpr ϕps ϕrq ϕsq θpr θps θrq θsq

ϕpr > θpr ϕps > θps ϕrq > θrq ϕsq > θsq ϕp ϕq ϕp = θrq + θsq ϕq = θpr + θps C

slide-37
SLIDE 37

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation

slide-38
SLIDE 38

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation Are there legal triangulations?

slide-39
SLIDE 39

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T

slide-40
SLIDE 40

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T

terminates?

slide-41
SLIDE 41

Legal Triangulations

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T

terminates, since A(T ) increases and #triangulations finite

slide-42
SLIDE 42

Are we stuck?

We know: Every angle-optimal triangulation is legal. But is every legal triangulation angle-optimal?

slide-43
SLIDE 43

. . . now for something completely different . . .

Voronoi Diagrams

slide-44
SLIDE 44

Motivation

? It is a beautiful sunny day. You know where all of the locations

  • f ice cream parlors in town and would like to know which one

is closest. How can we determine the closest ice cream parlor for every point on the map?

slide-45
SLIDE 45

Motivation

? It is a beautiful sunny day. You know where all of the locations

  • f ice cream parlors in town and would like to know which one

is closest. How can we determine the closest ice cream parlor for every point on the map?

slide-46
SLIDE 46

Motivation

? It is a beautiful sunny day. You know where all of the locations

  • f ice cream parlors in town and would like to know which one

is closest. How can we determine the closest ice cream parlor for every point on the map? !

slide-47
SLIDE 47

Motivation

? It is a beautiful sunny day. You know where all of the locations

  • f ice cream parlors in town and would like to know which one

is closest. How can we determine the closest ice cream parlor for every point on the map? ! The solution is a subdivision of the plane, called Voronoi diagram. It has many applications, e.g., in geography, physics, robotics

slide-48
SLIDE 48

Voronoi Diagrams

Definition: The Voronoi diagram of n points {p1, . . . , pn} in the plane is the subdivision of the plane into n cells, such that a point q is in the cell

  • f pi if and only if dist(q, pi) < dist(q, pj) for all i=j.
slide-49
SLIDE 49

Voronoi Diagrams

long history

  • Descartes 1644
  • Dirichlet 1850
  • Voronoi 1907

Definition: The Voronoi diagram of n points {p1, . . . , pn} in the plane is the subdivision of the plane into n cells, such that a point q is in the cell

  • f pi if and only if dist(q, pi) < dist(q, pj) for all i=j.
slide-50
SLIDE 50

Voronoi Diagrams

for 2 points

slide-51
SLIDE 51

Voronoi Diagrams

for 2 points

slide-52
SLIDE 52

Voronoi Diagrams

for 2 points

slide-53
SLIDE 53

Voronoi Diagrams

for 2 points

slide-54
SLIDE 54

Voronoi Diagrams

p q b(p, q) = {x ∈ R2 : |xp| = |xq|}

bisector of p and q

for 2 points

slide-55
SLIDE 55

Voronoi Diagrams

p q b(p, q) h(p, q) = {x ∈ R2 : |xp| = |xq|} = {x : |xp| < |xq|}

bisector of p and q

  • pen half plane

for 2 points

slide-56
SLIDE 56

Voronoi Diagrams

p q b(p, q) h(p, q) h(q, p) = {x ∈ R2 : |xp| = |xq|} = {x : |xp| < |xq|} = {x : |xq| < |xp|}

bisector of p and q

  • pen half plane
  • pen half plane

for 2 points

slide-57
SLIDE 57

Voronoi Diagrams

P = {p1, p2, . . . , pn} for n points

slide-58
SLIDE 58

Voronoi Diagrams

for n points

slide-59
SLIDE 59

Voronoi Diagrams

Vor(P) = Voronoi diagram

  • f P

for n points

slide-60
SLIDE 60

Voronoi Diagrams

Questions: 1) What are Voronoi cells, edges and vertices?

slide-61
SLIDE 61

Voronoi Diagrams

Questions: 1) What are Voronoi cells, edges and vertices? 2) Are Voronoi cells convex?

slide-62
SLIDE 62

Voronoi Diagrams

Let P be a set of points in th plane and p, p′, p′′ ∈ P.

slide-63
SLIDE 63

Voronoi Diagrams

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram p p′ p′′

slide-64
SLIDE 64

Voronoi Diagrams

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram p p′ p′′

slide-65
SLIDE 65

Voronoi Diagrams

V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram

  • Voronoi cell

p p′ p′′

slide-66
SLIDE 66

Voronoi Diagrams

V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram

  • Voronoi cell

p p′ p′′ = V(p)

slide-67
SLIDE 67

Voronoi Diagrams

V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • Voronoi diagram
  • Voronoi cell

p p′ p′′ = V(p)

slide-68
SLIDE 68

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • Voronoi diagram
  • Voronoi cell

p p′ p′′ = V(p)

slide-69
SLIDE 69

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • Voronoi diagram
  • Voronoi cell

p p′ p′′ = V(p)

slide-70
SLIDE 70

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′})

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = V(p)

slide-71
SLIDE 71

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′})

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = V(p)

slide-72
SLIDE 72

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) =

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = V(p)

slide-73
SLIDE 73

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = i.e. without endpoints , V(p)

slide-74
SLIDE 74

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = i.e. without endpoints , V(p)

slide-75
SLIDE 75

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi vertex

V({p, p′, p′′})

  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = i.e. without endpoints , V(p)

slide-76
SLIDE 76

Voronoi Diagrams

V({p}) = =

q=p h(p, q)

Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int

  • x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
  • {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
  • Voronoi vertex

= ∂V(p) ∩ ∂V(p′) ∩ ∂V(p′′) V({p, p′, p′′})

  • Voronoi edge

Voronoi diagram

  • Voronoi cell

p p′ p′′ = = i.e. without endpoints , V(p)

slide-77
SLIDE 77

Characterization

Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q

slide-78
SLIDE 78

Characterization

Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q CP (q)

slide-79
SLIDE 79

Characterization

Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q CP (q) Obs.:

  • A point q is a Voronoi vertex

⇔ |CP (q) ∩ P| ≥ 3,

  • the bisector b(pi, pj) defines a Voronoi edge

⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.

slide-80
SLIDE 80

Delaunay Triangulation

Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P.

slide-81
SLIDE 81

Delaunay Triangulation

Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P. G

slide-82
SLIDE 82

Delaunay Triangulation

Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P. Def.: The straight-line drawing of G is called Delaunay graph DG(P). DG(P)

slide-83
SLIDE 83

Properties

Thm 3: DG(P) has no crossing edges.

slide-84
SLIDE 84

Properties

Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e.

Ci j pi pj in V( pi) in V( pj) pk pl

⇒ pq can’t intersect another edge

Suppose pipj is crossed by pkpl. Every circle with pk, pl has to contain either pi or pj. Contradiction.

slide-85
SLIDE 85

Properties

Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P).

slide-86
SLIDE 86

Properties

Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P). If P is in general position (no 4 points on a circle), then all (inner) faces of DG(P) are triangles.

slide-87
SLIDE 87

Properties

Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P). If P is in general position (no 4 points on a circle), then all (inner) faces of DG(P) are triangles. A triangulation of DG(P) is called Delaunay triangulation.

slide-88
SLIDE 88

Empty-Circle Property

Theorem about Voronoi diagrams:

  • a point q is a Voronoi vertex

⇔ |CP (q) ∩ P| ≥ 3,

  • the bisector b(pi, pj) defines a Voronoi edge

⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.

slide-89
SLIDE 89

Empty-Circle Property

Theorem about Voronoi diagrams:

  • a point q is a Voronoi vertex

⇔ |CP (q) ∩ P| ≥ 3,

  • the bisector b(pi, pj) defines a Voronoi edge

⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.

Thm 4: Let P be a set of points.

  • points p, q, r are vertices of the same face in DG(P) ⇔

circle through p, q, r is empty

  • edge pq is in DG(P)

⇔ there is an empty circle Cp,q through p and q

slide-90
SLIDE 90

Empty-Circle Property

Theorem about Voronoi diagrams:

  • a point q is a Voronoi vertex

⇔ |CP (q) ∩ P| ≥ 3,

  • the bisector b(pi, pj) defines a Voronoi edge

⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.

Thm 4: Let P be a set of points.

  • points p, q, r are vertices of the same face in DG(P) ⇔

circle through p, q, r is empty

  • edge pq is in DG(P)

⇔ there is an empty circle Cp,q through p and q

Corollary: Let P be a set of points and T a triangulation of P. T is a Delaunay triangulation ⇔ circumcircle of every triangle is empty.

slide-91
SLIDE 91

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. proof sketch: "‘⇐"’ obvious, use

Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C).

slide-92
SLIDE 92

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. proof sketch: p q r s "‘⇒"’

  • suppose s in the interior of circle of pqr
  • let pr be the edge maximizing ∠psr
slide-93
SLIDE 93

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’

  • suppose s in the interior of circle of pqr
  • let pr be the edge maximizing ∠psr
slide-94
SLIDE 94

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’

  • suppose s in the interior of circle of pqr
  • let pr be the edge maximizing ∠psr
  • consider t adjacent to p and r
  • s also lies in the circle of prt
slide-95
SLIDE 95

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’

  • suppose s in the interior of circle of pqr
  • let pr be the edge maximizing ∠psr
  • consider t adjacent to p and r
  • s also lies in the circle of prt

Thales theorem: ∠tsr > ∠psr Contradiction to choice of pr

slide-96
SLIDE 96

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique.

slide-97
SLIDE 97

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique

slide-98
SLIDE 98

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal

slide-99
SLIDE 99

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal ⇒ angle-optimal triangulation is DG(P)!

slide-100
SLIDE 100

Legal vs Delaunay

Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal ⇒ angle-optimal triangulation is DG(P)! Is P not in general position, then the smallest angle in every triangulation of the "‘large"’ faces in DG(P) is the same. (proof uses Thales theorem)

slide-101
SLIDE 101

Randomized Incremental Construction

slide-102
SLIDE 102

Randomized Incremental Construction

DelaunayTriangulation(P) Initialize T as a large triangle ∆(p0, p−1, p−2) containing all points from P Compute a random permutation of p1, . . . , pn for r ← 1 to n do Insert(pr, T ) Discard p0, p−1 and p−2 with all their incident edges return T P p−1 p−2 p0

slide-103
SLIDE 103

Randomized Incremental Construction

Insert(pr, T ) Find triangle T containing pr if pr lies in triangle pipjpk then add edges from pr to pi, pj, pk LegalizeEdge(pr, pipj, T ) LegalizeEdge(pr, pjpk, T ) LegalizeEdge(pr, pkpi, T ) else add edges from pr to pl, pk LegalizeEdge(pr, pipl, T ) LegalizeEdge(pr, plpj, T ) LegalizeEdge(pr, pjpk, T ) LegalizeEdge(pr, pkpi, T ) // pr lies of edge pipj pi pr pk pj pi pl pk pr pj

slide-104
SLIDE 104

Randomized Incremental Construction

LegalizeEdge(pr, pipj, T ) if pipj is illegal then let pipjph be the adjacent triangle replace pipj by prph LegalizeEdge(pr, pjph, T ) LegalizeEdge(pr, phpi, T ) // Edge flip ph pj pi pr

slide-105
SLIDE 105

Correctness

  • 1. All edges inserted are legal
  • All edges inserted are adjacent to pr.
slide-106
SLIDE 106

Correctness

  • 1. All edges inserted are legal
  • All edges inserted are adjacent to pr.
  • All edges inserted are Delaunay edges.

pr pr pj pi pr pl

slide-107
SLIDE 107

Correctness

  • 1. All edges inserted are legal
  • 2. All other edges are legal

follows from Lemma 1: an edge can only be illegal if it is incident to a new triangle.

  • All edges inserted are adjacent to pr.
  • All edges inserted are Delaunay edges.

pr pr pj pi pr pl

slide-108
SLIDE 108

Initialization

Choose p0, p−1, p−2 far enough away from P, such that they lie in none of the circles of P and such that P lies in their triangle. P p−1 p−2 p0

slide-109
SLIDE 109

Initialization

better: Treat p0, p−1, p−2 symbolically by modifying tests/predicates used for point location and testing illegal edges. P p−1 p−2 p0

slide-110
SLIDE 110

Search Structure

build search structure for point location: directed acyclic graph with

  • leaves: current triangles
  • inner nodes: deleted triangles

∆1 ∆2 ∆3 ∆1 ∆2 ∆3

slide-111
SLIDE 111

Search Structure

build search structure for point location: directed acyclic graph with

  • leaves: current triangles
  • inner nodes: deleted triangles

∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3

slide-112
SLIDE 112

Search Structure

build search structure for point location: directed acyclic graph with

  • leaves: current triangles
  • inner nodes: deleted triangles

∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3 flip pipj pi pk ∆4 ∆5 ∆5 ∆4 ∆1 ∆2 ∆3

slide-113
SLIDE 113

Search Structure

build search structure for point location: directed acyclic graph with

  • leaves: current triangles
  • inner nodes: deleted triangles

∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3 flip pipj pi pk ∆4 ∆5 ∆5 ∆4 ∆1 ∆2 ∆3 flip pipk ∆6 ∆7 ∆7 ∆6 ∆5 ∆4 ∆1 ∆2 ∆3

slide-114
SLIDE 114

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

slide-115
SLIDE 115

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

How many triangles are created when pr is inserted?

proof:

slide-116
SLIDE 116

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

How many triangles are created when pr is inserted?

proof:

  • Every point in p1, . . . , pr has the same probability 1/r to be the last

point.

backwards analysis:

slide-117
SLIDE 117

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

How many triangles are created when pr is inserted?

proof:

  • Every point in p1, . . . , pr has the same probability 1/r to be the last

point.

backwards analysis:

  • expected degree of pr is ≤ 6
slide-118
SLIDE 118

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

How many triangles are created when pr is inserted?

proof:

  • Every point in p1, . . . , pr has the same probability 1/r to be the last

point.

backwards analysis:

  • expected degree of pr is ≤ 6
  • number of triangles created at pr is ≤ 2(degree(pr)) − 3
slide-119
SLIDE 119

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n).

How many triangles are created when pr is inserted?

proof:

  • Every point in p1, . . . , pr has the same probability 1/r to be the last

point.

backwards analysis:

  • expected degree of pr is ≤ 6
  • number of triangles created at pr is ≤ 2(degree(pr)) − 3
  • overall ≤ 2 ∗ 6 − 3 = 9; plus 1 for the outer triangle
slide-120
SLIDE 120

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n). Lemma: The expected number of triangles which are visited in the search structure during the construction is O(n log n). proof in the book.

slide-121
SLIDE 121

Analysis

Lemma: The expected number of triangles created is at most 9n + 1 = O(n). Lemma: The expected number of triangles which are visited in the search structure during the construction is O(n log n). Theorem: The Delaunay triangulation of n points can be computed in O(n log n) expected time using randomized incremental construction.