CS133 Computational Geometry Voronoi Diagram Delaunay - - PowerPoint PPT Presentation

β–Ά
cs133
SMART_READER_LITE
LIVE PREVIEW

CS133 Computational Geometry Voronoi Diagram Delaunay - - PowerPoint PPT Presentation

CS133 Computational Geometry Voronoi Diagram Delaunay Triangulation 1 Nearest Neighbor Problem Given a set of points and a query point , find the closest point to , , ,


slide-1
SLIDE 1

CS133

Computational Geometry

Voronoi Diagram Delaunay Triangulation

1

slide-2
SLIDE 2

Nearest Neighbor Problem

Given a set of points 𝑄 and a query point π‘Ÿ, find the closest point π‘ž ∈ 𝑄 to π‘Ÿ βˆ€π‘ž, 𝑠 ∈ 𝑄, 𝑒𝑗𝑑𝑒 π‘ž, π‘Ÿ ≀ 𝑒𝑗𝑑𝑒(𝑠, π‘Ÿ) Simple algorithm: Scan and find the minimum An efficient algorithm: Use a spatial index structure such as K-d tree What if we need to repeat this for every point in the space, i.e., an infinite number of points?

2

slide-3
SLIDE 3

Application: Cell Coverage

3

Voronoi Diagram

slide-4
SLIDE 4

Other Applications

Service coverage for hospitals, post offices, schools, … etc. Marketing: Find candidate locations for a new restaurant Routing: How an electric vehicle should travel while staying close to charging stations

4

slide-5
SLIDE 5

Voronoi Region

Given a set 𝑄 of points (also called sites), a Voronoi region (Voronoi face) of a site π‘žπ‘— ∈ 𝑄, π‘Š π‘žπ‘— is the set of points in the Euclidean space where π‘žπ‘— is (one of) the closest sites π‘Š π‘žπ‘— = 𝑦: π‘žπ‘— βˆ’ 𝑦 ≀ π‘žπ‘˜ βˆ’ 𝑦 βˆ€π‘žπ‘˜ ∈ 𝑄

5

slide-6
SLIDE 6

Voronoi Diagram

The Voronoi diagram is the set of points that belong to two or more Voronoi regions Voronoi diagram is a tessellation of the space into regions where each region contains all the points that are closest to one site

6

slide-7
SLIDE 7

VD of Two Points

7

π‘ž1 π‘ž2 π‘Š π‘ž1 π‘Š π‘ž2

slide-8
SLIDE 8

VD of Three Points

8

π‘ž1 π‘ž2 π‘Š π‘ž1 π‘Š π‘ž2 π‘ž3 π‘Š π‘ž3

slide-9
SLIDE 9

VD of Three Points

9

π‘ž1 π‘ž2 π‘Š π‘ž1 π‘Š π‘ž2 π‘ž3 π‘Š π‘ž3

slide-10
SLIDE 10

Voronoi Region

A Voronoi region of a set π‘žπ‘— is the intersection

  • f all half spaces defined by the

perpendicular bisectors π‘Š π‘žπ‘— =Ϊπ‘˜β‰ π‘— 𝐼 π‘žπ‘—, π‘žπ‘˜

10

slide-11
SLIDE 11

VD of a Set of Points

11

𝑄 π‘ŠπΈ 𝑄

slide-12
SLIDE 12

Mother Nature Loves VD

http://forum.woodenboat.com/showthread.php?112363-Voronoi-Diagrams-in-Nature

slide-13
SLIDE 13

Mother Nature Loves VD

slide-14
SLIDE 14

Mother Nature Loves VD

http://forum.woodenboat.com/showthread.php?112363-Voronoi-Diagrams-in-Nature

slide-15
SLIDE 15

Mother Nature Loves VD

Onion cells under the microscope

slide-16
SLIDE 16

Mother Nature Loves VD

http://forum.woodenboat.com/showthread.php?112363-Voronoi-Diagrams-in-Nature

A thin slice of carrot under the scope

slide-17
SLIDE 17

Mother Nature Loves VD

http://forum.woodenboat.com/showthread.php?112363-Voronoi-Diagrams-in-Nature

A dead maple leaf at 160X

slide-18
SLIDE 18

Mother Nature Loves VD

http://forum.woodenboat.com/showthread.php?112363-Voronoi-Diagrams-in-Nature

An oak leaf

slide-19
SLIDE 19

VD Properties

19

Voronoi regions are convex Each Voronoi region contains a single site Voronoi regions (faces) can be unbounded Most intersection points connect three segments

slide-20
SLIDE 20

VD Properties

π‘Š π‘žπ‘— is unbounded iff π‘žπ‘— ∈ π’Ÿβ„‹ 𝑄 If a point 𝑦 is at the intersection of three or more Voronoi regions, say π‘Š π‘ž1 , π‘Š π‘ž2 , … , π‘Š π‘žπ‘™ , then 𝑦 is the center of a circle 𝐷 that have π‘ž1, … , π‘žπ‘™ at its boundary 𝐷 contains no other sites VD is unique

20

slide-21
SLIDE 21

Delaunay Triangulation (DT)

Delaunay triangulation is the straight-line dual

  • f the Voronoi diagram

Each site is a corner of at least one triangle Each two Voronoi regions that share an edge are connected with an edge in DT

21

slide-22
SLIDE 22

DT Properties

The edges of 𝐸 𝑄 do not intersect Is 𝐸 𝑄 unique?

Yes, if no four sites are co-circular

If π‘žπ‘— and π‘žπ‘˜ are the closest pair

  • f sites, they are connected with an edge in DT

If π‘žπ‘— and π‘žπ‘˜ are nearest neighbors, they are connected with an edge in DT The circumcircle of π‘žπ‘—, π‘žπ‘˜, and π‘žπ‘™ is empty ⟺ π‘žπ‘—, π‘žπ‘˜, π‘žπ‘™ is a triangle in DT

22

slide-23
SLIDE 23

DT is a Planar Graph

Since the edges in DT do not intersect, they form a planar graph

The number of edges/faces in a Delaunay Triangulation is linear in the number of vertices. The number of edges/vertices in a Voronoi Diagram is linear in the number of faces. The number of vertices/edges/faces in a Voronoi Diagram is linear in the number of sites.

23

slide-24
SLIDE 24

Theorem 7.3

For π‘œ β‰₯ 3, the number of vertices in the Voronoi diagram (π‘œπ‘€) of a set of π‘œ point sites in the plane is at most 2π‘œ βˆ’ 5, and the number of edges π‘œπ‘“ is at most 3π‘œ βˆ’ 6

24

slide-25
SLIDE 25

Proof

For any connected graph 𝐻 Euler’s rule: 𝑛𝑀 βˆ’ 𝑛𝑓 + 𝑛𝑔 = 2

𝑛𝑀: Number of vertices (nodes) 𝑛𝑓: Number of edges (arcs) 𝑛𝑔: Number of faces

π‘œπ‘€ + 1 βˆ’ π‘œπ‘“ + π‘œ = 2 Each edge connects two vertices The sum of degrees of vertices βˆ‘π‘’ 𝑀𝑗 = 2π‘œπ‘“ 𝑒 𝑀𝑗 β‰₯ 3

25

slide-26
SLIDE 26

Proof (cont’d)

3π‘œπ‘€ ≀ βˆ‘π‘’ 𝑀𝑗 3 π‘œπ‘€ + 1 ≀ 2π‘œπ‘“ π‘œπ‘€ + 1 ≀ 2

3 π‘œπ‘“

But: π‘œπ‘€ + 1 βˆ’ π‘œπ‘“ + π‘œ = 2 π‘œπ‘€ + 1 = 2 βˆ’ π‘œ + π‘œπ‘“ ≀ 2

3 π‘œπ‘“ 1 3 π‘œπ‘“ ≀ π‘œ βˆ’ 2

π‘œπ‘“ ≀ 3π‘œ βˆ’ 6 π‘œπ‘€ ≀ 2π‘œ βˆ’ 5

26

slide-27
SLIDE 27

DT Properties

The boundary of 𝐸 𝑄 is the convex hull of 𝑄

27

π‘žπ‘— π‘žπ‘˜ π‘Š π‘žπ‘— π‘Š π‘žπ‘˜

slide-28
SLIDE 28

DT Properties

The boundary of 𝐸 𝑄 is the convex hull of 𝑄

28

π‘žπ‘— π‘žπ‘˜ π‘Š π‘žπ‘— π‘Š π‘žπ‘˜

slide-29
SLIDE 29

DT Properties

The boundary of 𝐸 𝑄 is the convex hull of 𝑄

29

π‘žπ‘— π‘žπ‘˜ π‘Š π‘žπ‘— π‘Š π‘žπ‘˜

slide-30
SLIDE 30

DT Properties

The boundary of 𝐸 𝑄 is the convex hull of 𝑄

30

π‘žπ‘— π‘žπ‘˜ π‘Š π‘žπ‘— π‘Š π‘žπ‘˜

slide-31
SLIDE 31

DT Properties

The boundary of 𝐸 𝑄 is the convex hull of 𝑄

31

π‘žπ‘— π‘žπ‘˜ π‘Š π‘žπ‘— π‘Š π‘žπ‘˜

∞

slide-32
SLIDE 32

DT Properties

If π‘žπ‘˜ is the nearest neighbor of π‘žπ‘— then π‘žπ‘—π‘žπ‘˜ is a Delaunay edge π‘žπ‘˜ is the nearest neighbor of π‘žπ‘— iff. the circle around π‘žπ‘— with radius π‘žπ‘— βˆ’ π‘žπ‘˜ is empty of

  • ther points.

β‡’The circle through π‘žπ‘— + π‘žπ‘˜ /2 with radius |π‘žπ‘— βˆ’ π‘žπ‘˜|/2 is empty of other points. β‡’ π‘žπ‘— + π‘žπ‘˜ /2 is on the Voronoi diagram. β‡’ π‘žπ‘— + π‘žπ‘˜ /2 is on a Voronoi edge.

32

slide-33
SLIDE 33

VD Plane Sweep

Scan the plane from top to bottom Compute the VD of the points above the sweep line Is it that simple?

33

slide-34
SLIDE 34

VD of a Line and a Point

34

𝑧 = 1 2 𝑦 βˆ’ π‘žπ‘—π‘¦ 2 π‘žπ‘—π‘§ βˆ’ ℓ𝑧 + ℓ𝑧 + π‘žπ‘—π‘§

π‘žπ‘—π‘¦, π‘žπ‘—π‘§ ℓ𝑧

slide-35
SLIDE 35

VD of a Line and a n Points

35

slide-36
SLIDE 36

VD of a Line and a n Points

36

slide-37
SLIDE 37

Fortune’s Algorithm

As the line sweeps the plane, the algorithm maintains the VD of the set of points and the sweep line Since the sweep line is closer than any future point, it acts as a barrier that isolates the VD from all future points

37

slide-38
SLIDE 38

Fortune’s Algorithm in Action

38

slide-39
SLIDE 39

VD Properties

The VD part above the beach line (blue) is

  • final. Why?

This area is closer to some site than the beach line … closer to some site than any future site We already know the nearest site to those areas

39

slide-40
SLIDE 40

VD Properties

The beach line is 𝑦-monotone. Why?

Each parabola is 𝑦-monotone At each 𝑦-coordinate, the beach line takes one value which is the minimum of all the parabolas Therefore, it is 𝑦-monotone

40

Figure Credits: http://www.cs.sfu.ca/~binay/813.2011/Fortune.pdf

slide-41
SLIDE 41

VD Properties

The breakpoints of the beach line lie on Voronoi edges of the final diagram

Each breakpoint is equidistant from two sites A breakpoint is as close to some site as to the sweep line The sweep line is (closer) to the blue sites than future sites

41

slide-42
SLIDE 42

Fortune’s Algorithm

Move the sweep line downwards and update the VD as the line moves When the line reaches βˆ’βˆž, we will have our final VD. (Because any point in the space is closer to some site than y = βˆ’βˆž) Note: We never create the beach line

  • explicitly. We only maintain enough

information that allows us to reconstruct parts

  • f it when we need them

42

slide-43
SLIDE 43

Beach Line Changes

How can the beach line change (topologically)

A new arc appears An existing arc is removed

43

slide-44
SLIDE 44

Site Event

When the sweep line hits a new site Where are the points that are equi-distant from the new site and the sweep line? A vertical line that crosses the new site

44

slide-45
SLIDE 45

Site Event

45

Lemma: The only way in which a new arc can appear on the beach line is through a site event Proof by contradiction

Case 1: An existing arc π›Ύπ‘˜ breaks through the middle of an existing arc 𝛾𝑗 Case 2: An existing arc π›Ύπ‘˜ appears in between two arcs

Proof is in the book

slide-46
SLIDE 46

Circle (Vertex) Event

An existing arc shrinks into a point and disappears This happens when three (or more) sites become closer to a point than the sweep line shielding the point from the sweep line

46

slide-47
SLIDE 47

Circle (Vertex) Event

The sweep line will only go further down while the points stay This results in a vertex on the Voronoi Diagram Lemma: The only way in which an existing arc can disappear from the beach line is through a circle event

47

slide-48
SLIDE 48

Circle (Vertex) Event

A circle event happens between three adjacent arcs

  • f three different

sites A circle event is added at the lowest point of the circle and is associated with the point of the disappearing arc

48

Circle event

slide-49
SLIDE 49

Plane Sweep Constructs

Sweep line status: The VD of the sites and the sweep line. In other words, the final part

  • f the VD + the beach line in non-decreasing

𝑦 order Event points:

Site event: A new site that adds a new arc to the

  • VD. 1-to-1 mapping to an input site

Circle event: The disappearance of an arc resulting in a vertex in VD. Can only be discovered along the way

49

slide-50
SLIDE 50

Sweep Line Status

The final part of VD is stored in the Doubly- Connected Edge List (DCEL) data structure The beach line is stored as a BST (𝜐) of arcs sorted by 𝑦

Leaves store arcs Internal nodes store the breakpoints as a pair of sites π‘žπ‘—, π‘žπ‘˜

50

slide-51
SLIDE 51

Sweep Line Status

51

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž2, π‘ž3 π‘ž1 π‘ž2 π‘ž3

slide-52
SLIDE 52

Event Points

Stored in a priority queue 𝑅 as a max-heap

  • rdered by 𝑧

𝑅 is initialized with all sites

52

slide-53
SLIDE 53

Handle Site Event (𝒒𝒋)

If 𝜐 is empty, add the site to it and return Search in 𝜐 for the arc 𝛽 vertically above π‘žπ‘— If exists, delete a circle event linked with 𝛽 Split 𝛽 into two arcs and insert a new arc 𝛽𝑗 corresponding to π‘žπ‘— The new intersections are 𝛽, 𝛽𝑗 and 𝛽𝑗, 𝛽 Check the new triples of arcs and add their corresponding circle event to 𝑅

53

slide-54
SLIDE 54

Handle Site Event (𝒒𝒋)

54

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž2, π‘ž3 π‘ž1 π‘ž2 π‘ž3

π‘ž4

slide-55
SLIDE 55

Handle Site Event (𝒒𝒋)

55

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž2, π‘ž3 π‘ž1 π‘ž2 π‘ž3

π‘ž4

π‘ž4, π‘ž2 π‘ž2, π‘ž4

slide-56
SLIDE 56

Handle Site Event (𝒒𝒋)

56

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž2, π‘ž3 π‘ž1 π‘ž3

π‘ž4

π‘ž4, π‘ž2 π‘ž2, π‘ž4 π‘ž2, π‘ž4 π‘ž4, π‘ž2 π‘ž4 π‘ž2 π‘ž2

slide-57
SLIDE 57

Handle Site Event (𝒒𝒋)

57

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž2, π‘ž3 π‘ž1 π‘ž3

π‘ž4

π‘ž4, π‘ž2 π‘ž2, π‘ž4 π‘ž2, π‘ž4 π‘ž4, π‘ž2 π‘ž4 π‘ž2 π‘ž2 𝛽1𝛽2𝛽3 are no longer adjacent βž” Remove the circle event that corresponds to 𝛽2 𝛽1𝛽2𝛽4 are now adjacent βž” Create a new circle event for them Similarly, create a circle event for 𝛽4𝛽2𝛽3 No circle event for the triple 𝛽2𝛽4𝛽2 because they don’t correspond tot three different sites

slide-58
SLIDE 58

Creating a Circle Event

Given three sites π‘žπ‘—, π‘žπ‘˜, π‘žπ‘™ that have three adjacent arcs, we first compute the center of their circumcircle, i.e., the intersection of the two perpendicular bisectors to π‘žπ‘—π‘žπ‘˜ and π‘žπ‘˜π‘žπ‘™ Compute the bottom point of the circle as 𝑦𝑑, 𝑧𝑑 βˆ’ 𝑠 where

𝑦𝑑, 𝑧𝑑 are the coordinates of the circle center and 𝑠 is the circle radius

Associate the circle event with the middle site in the tree order

58

slide-59
SLIDE 59

Handle Circle Event (𝜹)

Delete the leaf 𝛿 that corresponds to the disappearing arc 𝛽𝑗 from 𝜐 Delete the two breakpoints that involve 𝛽𝑗 Insert a new break point Add the center of the circle event as a vertex in VD. This center is one side of two half- edges Check for any new circle events caused by the now adjacent triples of arcs Running time: 𝑃 π‘œ log π‘œ

59

slide-60
SLIDE 60

Circle Event (𝜹)

60

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž2, π‘ž3 Circle event point π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž1 π‘ž2 π‘ž3

π‘ž4

𝜐

𝛽4

π‘ž3, π‘ž4 π‘ž3, π‘ž4 π‘ž4

slide-61
SLIDE 61

Circle Event (𝜹)

61

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž2, π‘ž3 Circle event point π‘ž1, π‘ž2 π‘ž2, π‘ž3 π‘ž1 π‘ž2 π‘ž3

π‘ž4

𝜐

𝛽4

π‘ž3, π‘ž4 π‘ž3, π‘ž4 π‘ž4

slide-62
SLIDE 62

Circle Event (𝜹)

62

π‘ž1 π‘ž2 π‘ž3 𝛽1 𝛽2 𝛽3

π‘ž1, π‘ž2 π‘ž2, π‘ž3 Circle event point π‘ž1, π‘ž3 π‘ž1 π‘ž3

π‘ž4

𝜐

𝛽4

π‘ž3, π‘ž4 π‘ž3, π‘ž4 π‘ž4 (π‘ž1, π‘ž3, π‘ž4) are now adjacent in the tree, create a corresponding circle event

slide-63
SLIDE 63

Delaunay Triangulation

63

slide-64
SLIDE 64

Delaunay Triangulation

A Delaunay triangulation can be defined as the (unique) triangulation in which the circumcircle of each triangle has no other sites NaΓ―ve algorithm:

Consider all possible triangles 𝑃 π‘œ3

Check if the circumcircle of the triangle is empty 𝑃 π‘œ

Running time 𝑃 π‘œ4

64

slide-65
SLIDE 65

Guibas and Stolfi’s Algorithm

A divide and conquer algorithm

65

slide-66
SLIDE 66

Algorithm Outline

DelaunayTriangulation(P)

If (|P| <= 3)

return TrivialDT(P)

Split P into P1 and P2 DT1 = DelaunayTriangulation(P1) DT2 = DelaunayTriangulation(P1) Merge(DT1, DT2)

66

slide-67
SLIDE 67

Split

67

Pre-sort by x

slide-68
SLIDE 68

TrivialDT(P)

68

P TrivialDT(P)

slide-69
SLIDE 69

Merge(P1, P2)

69

slide-70
SLIDE 70

Merge(P1, P2)

70

slide-71
SLIDE 71

Merge(P1, P2)

71

slide-72
SLIDE 72

Merge(P1, P2)

72

slide-73
SLIDE 73

Find the First LR edge

73

Upper tangent of π’Ÿβ„‹ 𝑄

1 , π’Ÿβ„‹ 𝑄2 Base LR edge

slide-74
SLIDE 74

Rising Bubble

74

slide-75
SLIDE 75

Rising Bubble

75

slide-76
SLIDE 76

Rising Bubble

76

slide-77
SLIDE 77

Rising Bubble

77

New Base LR edge

slide-78
SLIDE 78

Rising Bubble

78

slide-79
SLIDE 79

Rising Bubble

79

slide-80
SLIDE 80

Rising Bubble

80

slide-81
SLIDE 81

Rising Bubble

81

slide-82
SLIDE 82

Rising Bubble

82

slide-83
SLIDE 83

Rising Bubble

83

slide-84
SLIDE 84

Rising Bubble

84

slide-85
SLIDE 85

Rising Bubble

85

slide-86
SLIDE 86

Rising Bubble

86

slide-87
SLIDE 87

Rising Bubble

87

slide-88
SLIDE 88

Rising Bubble

88

slide-89
SLIDE 89

Rising Bubble

89

slide-90
SLIDE 90

Rising Bubble

90

slide-91
SLIDE 91

Rising Bubble

91

slide-92
SLIDE 92

Rising Bubble

92

slide-93
SLIDE 93

Rising Bubble

93

slide-94
SLIDE 94

Rising Bubble

94

slide-95
SLIDE 95

Rising Bubble

95

slide-96
SLIDE 96

Rising Bubble

96

slide-97
SLIDE 97

Rising Bubble

97

slide-98
SLIDE 98

Rising Bubble

98

slide-99
SLIDE 99

Rising Bubble

99

slide-100
SLIDE 100

Rising Bubble

100

slide-101
SLIDE 101

Rising Bubble

101

slide-102
SLIDE 102

Rising Bubble

102

slide-103
SLIDE 103

Rising Bubble

103

slide-104
SLIDE 104

Rising Bubble

104

slide-105
SLIDE 105

Rising Bubble

105

slide-106
SLIDE 106

Rising Bubble

106

slide-107
SLIDE 107

Rising Bubble

107

slide-108
SLIDE 108

Rising Bubble

108

slide-109
SLIDE 109

Rising Bubble

109

slide-110
SLIDE 110

Rising Bubble

110

slide-111
SLIDE 111

Rising Bubble

111

slide-112
SLIDE 112

Rising Bubble

112

slide-113
SLIDE 113

Rising Bubble

113

slide-114
SLIDE 114

Rising Bubble

114

slide-115
SLIDE 115

Rising Bubble

115

slide-116
SLIDE 116

Terminate

116

slide-117
SLIDE 117

Rising Bubble Implementation

117

πœ„π‘† πœ„π‘€

slide-118
SLIDE 118

Rising Bubble Implementation

118

πœ„π‘† πœ„π‘€

slide-119
SLIDE 119

Rising Bubble Implementation

119

πœ„π‘† πœ„π‘€

slide-120
SLIDE 120

Rising Bubble Implementation

120

πœ„π‘† πœ„π‘€

slide-121
SLIDE 121

Rising Bubble Implementation

121

πœ„π‘† πœ„π‘€

slide-122
SLIDE 122

Rising Bubble Implementation

122

slide-123
SLIDE 123

Terrain Problem

123

slide-124
SLIDE 124

Terrain Problem

We would like to build a model for the Earth terrain We can measure the altitude at some points How to approximate the altitude for non- measured points?

124

slide-125
SLIDE 125

Nearest Neighbor

One possibility, approximate it to the nearest measured point Does not look natural

125

slide-126
SLIDE 126

Triangulation

Determine a triangulation Raise each point to its altitude Question: Which triangulation?

126

slide-127
SLIDE 127

Angle-optimal Triangulation

For a triangulation 𝒰 𝐡(𝒰): is the angle vector which consists of the angles 𝛽’s in sorted order 𝛽1 ≀ 𝛽2 ≀ β‹― ≀ π›½π‘œ We say that 𝐡 𝒰 > 𝐡(𝒰′) if 𝐡(𝒰) is lexicographically larger than 𝐡(𝒰′) 𝒰 is angle optimal if 𝐡 𝒰 β‰₯ 𝐡(𝒰′) for all triangulations 𝒰′

127

𝛽1 𝛽2 𝛽3 𝛽4 𝛽5 𝛽6

slide-128
SLIDE 128

Edge Flip

The edge π‘žπ‘—π‘žπ‘˜ is illegal if min

1≀𝑗≀6 𝛽𝑗 < min 1≀𝑗≀6 𝛽𝑗 β€²

Flipping an edge increases the angle vector

128

𝛽1 𝛽2 𝛽3 𝛽4 𝛽5 𝛽6 π‘žπ‘— π‘žπ‘˜ π‘žπ‘™ π‘žπ‘š 𝛽1

β€²

𝛽2

β€²

𝛽3

β€²

𝛽4

β€²

𝛽5

β€²

𝛽6

β€²

π‘žπ‘— π‘žπ‘˜ π‘žπ‘™ π‘žπ‘š Edge Flip

slide-129
SLIDE 129

Detect Illegal Edges

Thale’s Theorem 𝑏𝑐 is a chord in 𝐷 βˆ‘π‘π‘ π‘ > βˆ‘π‘π‘žπ‘ βˆ‘π‘π‘žπ‘ = βˆ‘π‘π‘Ÿπ‘ βˆ‘π‘π‘Ÿπ‘ > βˆ‘π‘π‘‘π‘

129

𝑏 𝑐 𝑠 π‘ž π‘Ÿ 𝑑 𝐷

slide-130
SLIDE 130

Detect Illegal Edges

By Thale’s Theorem βˆ‘π‘žπ‘—π‘žπ‘˜π‘žπ‘™ < βˆ‘π‘žπ‘—π‘žπ‘šπ‘žπ‘™ βˆ‘π‘žπ‘˜π‘žπ‘—π‘žπ‘™ < βˆ‘π‘žπ‘˜π‘žπ‘šπ‘žπ‘™ An angle-optimal triangulation is equivalent to Delauany Triangulation

130

π‘žπ‘— π‘žπ‘˜ π‘žπ‘™ π‘žπ‘š Illegal Edge

slide-131
SLIDE 131

Delaunay Triangulation

  • 1. Start with any valid triangulation
  • 2. If no illegal edges found, terminate
  • 3. Pick an illegal edge and flip it
  • 4. Go to 2
  • Does this algorithm terminate?
  • Running time: 𝑃 π‘œ2

131

slide-132
SLIDE 132

Incremental Algorithm

Given an existing Delaunay triangulation πΈπ‘ˆ(𝑄) We need to add a point π‘žπ‘— to πΈπ‘ˆ

132

slide-133
SLIDE 133

Incremental Algorithm

133

slide-134
SLIDE 134

Incremental Algorithm

134

slide-135
SLIDE 135

Incremental Algorithm

135

slide-136
SLIDE 136

Incremental Algorithm

136

slide-137
SLIDE 137

Incremental Algorithm

137

π‘žβˆ’1 π‘žβˆ’2

slide-138
SLIDE 138

Incremental Algorithm

138

slide-139
SLIDE 139

Incremental Algorithm

139

slide-140
SLIDE 140

Insert

140

slide-141
SLIDE 141

Legalize Edge

141

slide-142
SLIDE 142

Correctness

142

slide-143
SLIDE 143

Correctness

143

slide-144
SLIDE 144

Incremental Algorithm

144

slide-145
SLIDE 145

Search Data Structure

145