of 50 /50
Introduction Triangulations Delaunay Triangulations Delaunay Triangulations Computational Geometry Lecture 12: Delaunay Triangulations Computational Geometry Lecture 12: Delaunay Triangulations 1

lelien
• Category

## Documents

• view

221

0

Embed Size (px)

### Transcript of Lecture 12: Delaunay Triangulations - Utrecht University · Introduction Triangulations Delaunay... IntroductionTriangulations

Delaunay Triangulations

Delaunay Triangulations

Computational Geometry

Lecture 12: Delaunay Triangulations

Computational Geometry Lecture 12: Delaunay Triangulations1 IntroductionTriangulations

Delaunay Triangulations

Motivation: Terrains

a terrain is the graph of afunction f : A⊂ R2→ Rwe know only height values for aset of measurement points

how can we interpolate theheight at other points?

using a triangulation

– but which?

Computational Geometry Lecture 12: Delaunay Triangulations2 IntroductionTriangulations

Delaunay Triangulations

Motivation: Terrains

a terrain is the graph of afunction f : A⊂ R2→ Rwe know only height values for aset of measurement points

how can we interpolate theheight at other points?

using a triangulation

– but which?

Computational Geometry Lecture 12: Delaunay Triangulations3 IntroductionTriangulations

Delaunay Triangulations

Motivation: Terrains

a terrain is the graph of afunction f : A⊂ R2→ Rwe know only height values for aset of measurement points

how can we interpolate theheight at other points?

using a triangulation

– but which?

?

Computational Geometry Lecture 12: Delaunay Triangulations4 IntroductionTriangulations

Delaunay Triangulations

Motivation: Terrains

a terrain is the graph of afunction f : A⊂ R2→ Rwe know only height values for aset of measurement points

how can we interpolate theheight at other points?

using a triangulation

– but which?

?

Computational Geometry Lecture 12: Delaunay Triangulations5 IntroductionTriangulations

Delaunay Triangulations

Motivation: Terrains

a terrain is the graph of afunction f : A⊂ R2→ Rwe know only height values for aset of measurement points

how can we interpolate theheight at other points?

using a triangulation– but which?

0

10

6

20

36

28

1000

980

990

1008

8904 23interpolated height = 985

q

0

10

6

20

36

28

1000

980

990

1008

8904 23

interpolated height = 23

q

Computational Geometry Lecture 12: Delaunay Triangulations6 IntroductionTriangulations

Delaunay Triangulations

Triangulation

Let P = {p1, . . . ,pn} be a point set. A triangulation of P is amaximal planar subdivision with vertex set P.

Complexity:

2n−2− k triangles

3n−3− k edges

where k is the number of points in Pon the convex hull of P.

Computational Geometry Lecture 12: Delaunay Triangulations7 IntroductionTriangulations

Delaunay Triangulations

Triangulation

Let P = {p1, . . . ,pn} be a point set. A triangulation of P is amaximal planar subdivision with vertex set P.

Complexity:

2n−2− k triangles

3n−3− k edges

where k is the number of points in Pon the convex hull of P.

Computational Geometry Lecture 12: Delaunay Triangulations8 IntroductionTriangulations

Delaunay Triangulations

Angle Vector of a Triangulation

Let T be a triangulation of P with m triangles and 3mvertices. Its angle vector is A(T) = (α1, . . . ,α3m) whereα1, . . . ,α3m are the angles of T sorted by increasing value.

Let T′ be another triangulation of P.We define A(T) > A(T′) if A(T) islexicographically larger than A(T′).

T is angle optimal if A(T)≥ A(T′)for all triangulations T′ of P.

α1

α2 α3

α4α5

α6

A(T) = (α1, . . . ,α6)

Computational Geometry Lecture 12: Delaunay Triangulations9 IntroductionTriangulations

Delaunay Triangulations

Angle Vector of a Triangulation

Let T be a triangulation of P with m triangles and 3mvertices. Its angle vector is A(T) = (α1, . . . ,α3m) whereα1, . . . ,α3m are the angles of T sorted by increasing value.

Let T′ be another triangulation of P.We define A(T) > A(T′) if A(T) islexicographically larger than A(T′).

T is angle optimal if A(T)≥ A(T′)for all triangulations T′ of P.

α1

α2 α3

α4α5

α6

A(T) = (α1, . . . ,α6)

Computational Geometry Lecture 12: Delaunay Triangulations10 IntroductionTriangulations

Delaunay Triangulations

Angle Vector of a Triangulation

Let T be a triangulation of P with m triangles and 3mvertices. Its angle vector is A(T) = (α1, . . . ,α3m) whereα1, . . . ,α3m are the angles of T sorted by increasing value.

Let T′ be another triangulation of P.We define A(T) > A(T′) if A(T) islexicographically larger than A(T′).

T is angle optimal if A(T)≥ A(T′)for all triangulations T′ of P.

α1

α2 α3

α4α5

α6

A(T) = (α1, . . . ,α6)

Computational Geometry Lecture 12: Delaunay Triangulations11 IntroductionTriangulations

Delaunay Triangulations

Edge Flipping

α ′1

α ′4

α ′3

α ′5

α ′2

α ′6

pi

p j

pk

pl

piα4

α1

α3

α5

α2

α6

p j

pk

pl

edge flip

Change in angle vector:α1, . . . ,α6 are replaced by α ′1, . . . ,α

′6.

The edge e = pipj is illegal if min1≤i≤6 αi < min1≤i≤6 α ′i .

Flipping an illegal edge increases the angle vector.

Computational Geometry Lecture 12: Delaunay Triangulations12 IntroductionTriangulations

Delaunay Triangulations

Edge Flipping

α ′1

α ′4

α ′3

α ′5

α ′2

α ′6

pi

p j

pk

pl

piα4

α1

α3

α5

α2

α6

p j

pk

pl

edge flip

Change in angle vector:α1, . . . ,α6 are replaced by α ′1, . . . ,α

′6.

The edge e = pipj is illegal if min1≤i≤6 αi < min1≤i≤6 α ′i .

Flipping an illegal edge increases the angle vector.

Computational Geometry Lecture 12: Delaunay Triangulations13 IntroductionTriangulations

Delaunay Triangulations

Edge Flipping

α ′1

α ′4

α ′3

α ′5

α ′2

α ′6

pi

p j

pk

pl

piα4

α1

α3

α5

α2

α6

p j

pk

pl

edge flip

Change in angle vector:α1, . . . ,α6 are replaced by α ′1, . . . ,α

′6.

The edge e = pipj is illegal if min1≤i≤6 αi < min1≤i≤6 α ′i .

Flipping an illegal edge increases the angle vector.

Computational Geometry Lecture 12: Delaunay Triangulations14 IntroductionTriangulations

Delaunay Triangulations

Edge Flipping

α ′1

α ′4

α ′3

α ′5

α ′2

α ′6

pi

p j

pk

pl

piα4

α1

α3

α5

α2

α6

p j

pk

pl

edge flip

Change in angle vector:α1, . . . ,α6 are replaced by α ′1, . . . ,α

′6.

The edge e = pipj is illegal if min1≤i≤6 αi < min1≤i≤6 α ′i .

Flipping an illegal edge increases the angle vector.

Computational Geometry Lecture 12: Delaunay Triangulations15 IntroductionTriangulations

Delaunay Triangulations

Characterisation of Illegal Edges

How do we determine if an edge is illegal?

Lemma: The edge pipj is illegalif and only if pl lies in the interiorof the circle C.

Computational Geometry Lecture 12: Delaunay Triangulations16 IntroductionTriangulations

Delaunay Triangulations

Characterisation of Illegal Edges

How do we determine if an edge is illegal?

Lemma: The edge pipj is illegalif and only if pl lies in the interiorof the circle C. pi

p j

pk

pl

illegal

Computational Geometry Lecture 12: Delaunay Triangulations17 IntroductionTriangulations

Delaunay Triangulations

Thales Theorem

Theorem: Let C be a circle, ` a lineintersecting C in points a and b, andp,q,r,s points lying on the same sideof `. Suppose that p,q lie on C, r liesinside C, and s lies outside C. Then

]arb > ]apb = ]aqb > ]asb,

where ]abc denotes the smallerangle defined by three points a,b,c.

` C

p

q

r

s

a

b

pi

p j

pk

pl

illegal

Computational Geometry Lecture 12: Delaunay Triangulations18 IntroductionTriangulations

Delaunay Triangulations

Thales Theorem

Theorem: Let C be a circle, ` a lineintersecting C in points a and b, andp,q,r,s points lying on the same sideof `. Suppose that p,q lie on C, r liesinside C, and s lies outside C. Then

]arb > ]apb = ]aqb > ]asb,

where ]abc denotes the smallerangle defined by three points a,b,c.

` C

p

q

r

s

a

b

pi

p j

pk

pl

illegal

Computational Geometry Lecture 12: Delaunay Triangulations19 IntroductionTriangulations

Delaunay Triangulations

Thales Theorem

Theorem: Let C be a circle, ` a lineintersecting C in points a and b, andp,q,r,s points lying on the same sideof `. Suppose that p,q lie on C, r liesinside C, and s lies outside C. Then

]arb > ]apb = ]aqb > ]asb,

where ]abc denotes the smallerangle defined by three points a,b,c.

` C

p

q

r

s

a

b

pi

p j

pk

pl

illegal

α

α ′

β

β ′

α ′ < α

β ′ < β

Computational Geometry Lecture 12: Delaunay Triangulations20 IntroductionTriangulations

Delaunay Triangulations

Legal Triangulations

A legal triangulation is a triangulation that does not containany illegal edge.

Algorithm LegalTriangulation(T)Input. A triangulation T of a point set P.Output. A legal triangulation of P.1. while T contains an illegal edge pipj

2. do (∗ Flip pipj ∗)3. Let pipjpk and pipjpl be the two triangles adjacent

to pipj.4. Remove pipj from T, and add pkpl instead.5. return T

Question: Why does this algorithm terminate?

Computational Geometry Lecture 12: Delaunay Triangulations21 IntroductionTriangulations

Delaunay Triangulations

Legal Triangulations

A legal triangulation is a triangulation that does not containany illegal edge.

Algorithm LegalTriangulation(T)Input. A triangulation T of a point set P.Output. A legal triangulation of P.1. while T contains an illegal edge pipj

2. do (∗ Flip pipj ∗)3. Let pipjpk and pipjpl be the two triangles adjacent

to pipj.4. Remove pipj from T, and add pkpl instead.5. return T

Question: Why does this algorithm terminate?

Computational Geometry Lecture 12: Delaunay Triangulations22 IntroductionTriangulations

Delaunay Triangulations

Legal Triangulations

A legal triangulation is a triangulation that does not containany illegal edge.

Algorithm LegalTriangulation(T)Input. A triangulation T of a point set P.Output. A legal triangulation of P.1. while T contains an illegal edge pipj

2. do (∗ Flip pipj ∗)3. Let pipjpk and pipjpl be the two triangles adjacent

to pipj.4. Remove pipj from T, and add pkpl instead.5. return T

Question: Why does this algorithm terminate?

Computational Geometry Lecture 12: Delaunay Triangulations23 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Voronoi Diagram and Delaunay Graph

Let P be a set of n points in theplane.

The Voronoi diagram Vor(P) isthe subdivision of the plane intoVoronoi cells V(p) for all p ∈ P.

Let G be the dual graph ofVor(P).The Delaunay graph DG(P) isthe straight line embedding of G.

Question: How can wecompute the Delaunay graph?

Computational Geometry Lecture 12: Delaunay Triangulations24 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Voronoi Diagram and Delaunay Graph

Let P be a set of n points in theplane.

The Voronoi diagram Vor(P) isthe subdivision of the plane intoVoronoi cells V(p) for all p ∈ P.

Let G be the dual graph ofVor(P).The Delaunay graph DG(P) isthe straight line embedding of G.

Question: How can wecompute the Delaunay graph?

Vor(P)

Computational Geometry Lecture 12: Delaunay Triangulations25 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Voronoi Diagram and Delaunay Graph

Let P be a set of n points in theplane.

The Voronoi diagram Vor(P) isthe subdivision of the plane intoVoronoi cells V(p) for all p ∈ P.

Let G be the dual graph ofVor(P).The Delaunay graph DG(P) isthe straight line embedding of G.

Question: How can wecompute the Delaunay graph?

Vor(P)

G

Computational Geometry Lecture 12: Delaunay Triangulations26 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Voronoi Diagram and Delaunay Graph

Let P be a set of n points in theplane.

The Voronoi diagram Vor(P) isthe subdivision of the plane intoVoronoi cells V(p) for all p ∈ P.

Let G be the dual graph ofVor(P).The Delaunay graph DG(P) isthe straight line embedding of G.

Question: How can wecompute the Delaunay graph?

Vor(P)

DG(P)

Computational Geometry Lecture 12: Delaunay Triangulations27 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Voronoi Diagram and Delaunay Graph

Let P be a set of n points in theplane.

The Voronoi diagram Vor(P) isthe subdivision of the plane intoVoronoi cells V(p) for all p ∈ P.

Let G be the dual graph ofVor(P).The Delaunay graph DG(P) isthe straight line embedding of G.

Question: How can wecompute the Delaunay graph?

Vor(P)

DG(P)

Computational Geometry Lecture 12: Delaunay Triangulations28 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Planarity of the Delaunay Graph

Theorem: The Delaunay graph of a planar point set is a planegraph.

Ci j

pi

p j

contained in V(pi)

contained in V(p j)

Computational Geometry Lecture 12: Delaunay Triangulations29 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Delaunay Triangulation

If the point set P is in general position then the Delaunay graphis a triangulation.

vf

Computational Geometry Lecture 12: Delaunay Triangulations30 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Empty Circle Property

Theorem: Let P be a set of points in the plane, and let T bea triangulation of P. Then T is a Delaunay triangulation of Pif and only if the circumcircle of any triangle of T does notcontain a point of P in its interior.

Computational Geometry Lecture 12: Delaunay Triangulations31 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Delaunay Triangulations and Legal Triangulations

Theorem: Let P be a set of points in the plane. A triangulationT of P is legal if and only if T is a Delaunay triangulation.

pi

p j

pk

pl

C(pi p j pk)

pm C(pi p j pm)

e

Computational Geometry Lecture 12: Delaunay Triangulations32 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Angle Optimality and Delaunay Triangulations

Theorem: Let P be a set of points in the plane. Anyangle-optimal triangulation of P is a Delaunay triangulation ofP. Furthermore, any Delaunay triangulation of P maximizesthe minimum angle over all triangulations of P.

Computational Geometry Lecture 12: Delaunay Triangulations33 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

Algorithm DelaunayTriangulation(P)Input. A set P of n+1 points in the plane.Output. A Delaunay triangulation of P.1. Initialize T as the triangulation consisting of an outer

triangle p0p−1p−2 containing points of P, where p0 is thelexicographically highest point of P.

2. Compute a random permutation p1,p2, . . . ,pn of P\{p0}.3. for r← 1 to n4. do5. Locate(pr,T)6. Insert(pr,T)7. Discard p−1 and p−2 with all their incident edges from T.8. return T

Computational Geometry Lecture 12: Delaunay Triangulations34 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

pr

pi

pk

p j

pr

p j

pi

pkpl

pr lies in the interior of a triangle pr falls on an edge

Computational Geometry Lecture 12: Delaunay Triangulations35 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

Insert(pr,T)1. if pr lies in the interior of the triangle pipjpk2. then Add edges from pr to the three vertices of pipjpk, thereby

splitting pipjpk into three triangles.3. LegalizeEdge(pr,pipj,T)4. LegalizeEdge(pr,pjpk,T)5. LegalizeEdge(pr,pkpi,T)6. else (∗ pr lies on an edge of pipjpk, say the edge pipj ∗)7. Add edges from pr to pk and to the third vertex pl of the

other triangle that is incident to pipj, thereby splitting thetwo triangles incident to pipj into four triangles.

8. LegalizeEdge(pr,pipl,T)9. LegalizeEdge(pr,plpj,T)10. LegalizeEdge(pr,pjpk,T)11. LegalizeEdge(pr,pkpi,T)

Computational Geometry Lecture 12: Delaunay Triangulations36 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

LegalizeEdge(pr,pipj,T)1. (∗ The point being inserted is pr, and

pipj is the edge of T that may need tobe flipped. ∗)

2. if pipj is illegal3. then Let pipjpk be the triangle

adjacent to prpipj along pipj.4. (∗ Flip pipj: ∗) Replace pipj

with prpk.5. LegalizeEdge(pr,pipk,T)6. LegalizeEdge(pr,pkpj,T)

pr pi

p j pk

Computational Geometry Lecture 12: Delaunay Triangulations37 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

=⇒

pr

All edges created are incident to pr.

Correctness: Are new edges legal?

Computational Geometry Lecture 12: Delaunay Triangulations38 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

=⇒

pr

All edges created are incident to pr.

Correctness: Are new edges legal?

Computational Geometry Lecture 12: Delaunay Triangulations39 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

pi

p jpl

pr

CC′

Correctness:For any new edge there is an empty circle through endpoints.New edges are legal.

Computational Geometry Lecture 12: Delaunay Triangulations40 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

Initializing triangulation: treat p−1 and p−2 symbolically.No actual coordinates.Modify tests for point location and illegal edges to work as iffar away.

Point location: search data structure.Point visits triangles of previous triangulations that contain it.

Computational Geometry Lecture 12: Delaunay Triangulations41 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Randomized Incremental Construction

split ∆1

flip pi p j

flip pi pk

pi

pk

∆1∆1

∆2

∆2

∆3

∆3

pr ∆1 ∆2 ∆3

∆2

∆3pi

p j ∆1 ∆2 ∆3

∆4

∆4 ∆5

∆6

∆7

∆7∆6

∆1 ∆2 ∆3

∆4

∆3

∆5

∆4 ∆5

Computational Geometry Lecture 12: Delaunay Triangulations42 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

1 Expected total number of triangles created in O(n)2 Expected total number of triangles visited while search

point location data structure: O(n logn)We will only consider the first (see book for second)

Computational Geometry Lecture 12: Delaunay Triangulations43 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations44 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations45 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations46 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations47 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations48 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Lemma: Total number of triangles created is at most 9n+1.

How many triangles are created when inserting pr?

Backwards analysis: Any point of p1, . . . ,pr has the sameprobability 1/r to be pr.

Expected degree of pr ≤ 6.

Number of triangles created ≤ 2degree(pr)−3(Why? Count flips.)

2 ·6−3 = 9

+ outer triangle

Computational Geometry Lecture 12: Delaunay Triangulations49 IntroductionTriangulations

Delaunay Triangulations

PropertiesRandomized Incremental ConstructionAnalysis

Analysis

Theorem: The Delaunay triangulation of n points can becomputed in O(n logn) expected time.

Computational Geometry Lecture 12: Delaunay Triangulations50