Lecture 10: Voronoi diagrams

77
Motivation Voronoi diagrams Voronoi diagrams Computational Geometry Lecture 10: Voronoi diagrams Computational Geometry Lecture 10: Voronoi diagrams 1

Transcript of Lecture 10: Voronoi diagrams

Page 1: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagrams

Computational Geometry

Lecture 10: Voronoi diagrams

Computational Geometry Lecture 10: Voronoi diagrams1

Page 2: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Given some trees, seenfrom above, which regionwill they occupy?

Computational Geometry Lecture 10: Voronoi diagrams2

Page 3: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Given some trees, seenfrom above, which regionwill they occupy?

Computational Geometry Lecture 10: Voronoi diagrams3

Page 4: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Given ambulance posts in a country,in case of an emergency somewhere,where should the ambulance comefrom?

Computational Geometry Lecture 10: Voronoi diagrams4

Page 5: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Given ambulance posts in a country,in case of an emergency somewhere,where should the ambulance comefrom?

Computational Geometry Lecture 10: Voronoi diagrams5

Page 6: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Voronoi diagram induced by a set of points (called sites):Subdivision of the plane where the faces correspond to theregions where one site is closest

Computational Geometry Lecture 10: Voronoi diagrams6

Page 7: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Computational Geometry Lecture 10: Voronoi diagrams7

Page 8: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Voronoi diagram

Question: Why is the Voronoi diagram not really asubdivision?

Computational Geometry Lecture 10: Voronoi diagrams8

Page 9: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we tested the soil at anumber of sample points andclassified the results

sand

clay

chalk

limestone

clayclay

sand

chalk

Computational Geometry Lecture 10: Voronoi diagrams9

Page 10: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we tested the soil at anumber of sample points andclassified the results

sand

clay

chalk

limestone

clayclay

sand

chalk

Computational Geometry Lecture 10: Voronoi diagrams10

Page 11: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we tested the soil at anumber of sample points andclassified the results

sand

clay

chalk

limestone

clayclay

sand

chalk

Computational Geometry Lecture 10: Voronoi diagrams11

Page 12: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we measured the leadconcentration at a number ofsample points

14

1322

6

7

15

1811

20

Computational Geometry Lecture 10: Voronoi diagrams12

Page 13: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we measured the leadconcentration at a number ofsample points

14

1322

6

7

15

1811

20

?

Computational Geometry Lecture 10: Voronoi diagrams13

Page 14: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we measured the leadconcentration at a number ofsample points

14

1322

6

7

15

1811

20

?

Computational Geometry Lecture 10: Voronoi diagrams14

Page 15: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we measured the leadconcentration at a number ofsample points

14

1322

6

7

15

1811

20

?

Computational Geometry Lecture 10: Voronoi diagrams15

Page 16: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Suppose we measured the leadconcentration at a number ofsample points

14

1322

6

7

15

1811

20

?A1

A2A3

A4

A5

Computational Geometry Lecture 10: Voronoi diagrams16

Page 17: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Let AT = A1 +A2 + · · ·+A5

The interpolated value is

A1

AT13+

A2

AT11+ · · ·+ A5

AT20

14

1322

6

7

15

1811

20

?A1

A2A3

A4

A5

Computational Geometry Lecture 10: Voronoi diagrams17

Page 18: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

Voronoi diagramsSpatial interpolation

Spatial interpolation

Crater on Mars generated by natural neighbor interpolation

Computational Geometry Lecture 10: Voronoi diagrams18

Page 19: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Some observations

Edges are parts of bisectors

Some edges are half-infinite

Some cells are unbounded

Question: Which ones?

Computational Geometry Lecture 10: Voronoi diagrams19

Page 20: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Some observations

Every Voronoi cell is theintersection of n−1half-planes, if there are n sites

⇒ all cells are convex andhave up to n−1 edges in theboundary

p

Computational Geometry Lecture 10: Voronoi diagrams20

Page 21: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Structure

The Voronoi diagram of n sites has the following structure:

If all n sites lie on a line, then the Voronoi cell boundariesare parallel lines, so the “graph” is disconnected

Otherwise, the Voronoi cell boundaries form a connected“graph”

Computational Geometry Lecture 10: Voronoi diagrams21

Page 22: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Complexity

Theorem: The Voronoi diagram on f sites in the plane has atmost 2n−5 Voronoi vertices and at most 3n−6 Voronoiedges (including lines and half-lines)

Proof: If the sites are colinear, then it is trivial

Otherwise, we will use Euler’s formula for planar graphs

Computational Geometry Lecture 10: Voronoi diagrams22

Page 23: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Complexity

Euler’s formula for planar graphs: A connected planar graphwith nv vertices, ne edges, and nf faces satisfies:

nv−ne +nf = 2

However, a Voronoi diagram is not a proper graph

Computational Geometry Lecture 10: Voronoi diagrams23

Page 24: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Complexity

We make it proper by connecting allhalf-infinite edges to a new vertex v∞

nv = no. of Voronoi vertices VV +1

ne = no. of Voronoi edges VE

nf = no. of Voronoi cells = n, thenumber of sites

v∞

Computational Geometry Lecture 10: Voronoi diagrams24

Page 25: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Complexity

Substitution in Euler’s formula nv−ne +nf = 2 gives

(VV +1)−VE +n = 2

Every edge is incident to exactly 2 vertices, and every vertexis incident to at least 3 edges

Sum-of-degree-of-all-vertices = 2 ·VE

Sum-of-degree-of-all-vertices ≥ 3 ·VV

= 2 ·VE ≥ 3 ·VV

Computational Geometry Lecture 10: Voronoi diagrams25

Page 26: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Complexity

The combination of

(VV +1)−VE +n = 2

and

= 2 ·VE ≥ 3 ·VV

gives the desired bounds VV ≤ 2n−5 and VE ≤ 3n−6

Computational Geometry Lecture 10: Voronoi diagrams26

Page 27: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Empty circle property

Every Voronoi vertex is thecenter of an empty circlethrough 3 sites

Every point on a Voronoi edgeis the center of an empty circlethrough 2 sites

Computational Geometry Lecture 10: Voronoi diagrams27

Page 28: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Degeneracies

All sites lie on a line

More than 3 points lie on acircle

Computational Geometry Lecture 10: Voronoi diagrams28

Page 29: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Algorithms for Voronoi diagrams

Compute the intersection of n−1 half-planes for each site,and “merge” the cells into the diagram

Divide-and-conquer (1975, Shamos & Hoey)

Plane sweep (1987, Fortune)

Randomized incremental construction (1992, Guibas, Knuth& Sharir)

Computational Geometry Lecture 10: Voronoi diagrams29

Page 30: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Plane sweep for Voronoi diagrams

Plane sweep: Note that the Voronoi diagram above the sweepline may be affected by sites below the sweep line

Maintain and grow the portion of Voronoi diagram above thesweep line that is known for sure

Computational Geometry Lecture 10: Voronoi diagrams30

Page 31: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Plane sweep for Voronoi diagrams

Plane sweep: Note that the Voronoi diagram above the sweepline may be affected by sites below the sweep line

Maintain and grow the portion of Voronoi diagram above thesweep line that is known for sure

Computational Geometry Lecture 10: Voronoi diagrams31

Page 32: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Beach line

The beach line separates the known and unknown part of theVoronoi diagram, it is the minimum of the parabolas definedby sites above the sweep-line and the sweep-line itself

Computational Geometry Lecture 10: Voronoi diagrams32

Page 33: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Beach line

The beach line changes continuously,even one parabola does

Computational Geometry Lecture 10: Voronoi diagrams33

Page 34: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Beach line

Question: The beach line has break points, what do theyrepresent?

Computational Geometry Lecture 10: Voronoi diagrams34

Page 35: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Beach line

The break points move andtrace out the Voronoi diagramedges

`

Computational Geometry Lecture 10: Voronoi diagrams35

Page 36: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Status

Status: The ordered sequence of parabolic arcs that definethe beach line; each is defined by a site (and the sweep-line)

Break points are defined by two sites (and the sweep-line)

Since the beach line is x-monotone, we can store the status ina balanced binary search tree on x-coordinate

Computational Geometry Lecture 10: Voronoi diagrams36

Page 37: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Status

pi

pj

pkpi pj pk pi

〈pj, pk〉

〈pi, pj〉 〈pk, pi〉

〈pj, pk〉

〈pi, pj〉

〈pk, pi〉

Computational Geometry Lecture 10: Voronoi diagrams37

Page 38: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Other data structures

The sweep algorithm also needs an event list and a datastructure to store the Voronoi diagram computed so far

The Voronoi diagram will be computed inside a large boundingbox so that a doubly-connected edge list can be used

Computational Geometry Lecture 10: Voronoi diagrams38

Page 39: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Events

The events are where the status changes = where the beachline changes

When the sweep-line reaches a new site

When a break point reaches the end of the edge it traces

Computational Geometry Lecture 10: Voronoi diagrams39

Page 40: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site events

The sweep-line reaches a newsite, a site event: a newparabola starts

Computational Geometry Lecture 10: Voronoi diagrams40

Page 41: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site events

The sweep-line reaches a newsite, a site event: a newparabola starts

Computational Geometry Lecture 10: Voronoi diagrams41

Page 42: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site events

The sweep-line reaches a newsite, a site event: a newparabola starts

Computational Geometry Lecture 10: Voronoi diagrams42

Page 43: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site events

The sweep-line reaches a newsite, a site event: a newparabola starts

Two new break pointsappear on the beach line

A new Voronoi edge isdiscovered

Computational Geometry Lecture 10: Voronoi diagrams43

Page 44: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams44

Page 45: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams45

Page 46: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams46

Page 47: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams47

Page 48: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams48

Page 49: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams49

Page 50: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams50

Page 51: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Computational Geometry Lecture 10: Voronoi diagrams51

Page 52: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

Parabolic arcs may disappear from the beach line

Computational Geometry Lecture 10: Voronoi diagrams52

Page 53: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The other events

We discover an empty circle and a Voronoi vertex

Computational Geometry Lecture 10: Voronoi diagrams53

Page 54: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Circle events

At a circle event:

A parabolic arc disappears from the beach line

Two adjacent break points come together

A Voronoi vertex is discovered as the vertex incident totwo known Voronoi edges

A new break point starts to be traced

The sweep line reached the bottom of an empty circlethrough 3 sites

Computational Geometry Lecture 10: Voronoi diagrams54

Page 55: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Circle events

Circle events can only happen for three sites that haveadjacent parabolic arcs on the beach line

Computational Geometry Lecture 10: Voronoi diagrams55

Page 56: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site and circle events

The only way for a new parabolic arc to appear on the beachline is through a site event

The only way for a parabolic arc to disappear from the beachline is through a circle event

There are no other events

Computational Geometry Lecture 10: Voronoi diagrams56

Page 57: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site and circle events

There are n site events and they are known in advance

Question: How can we know circle events before they occur?

Computational Geometry Lecture 10: Voronoi diagrams57

Page 58: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting circle events

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

Computational Geometry Lecture 10: Voronoi diagrams58

Page 59: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting circle events

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

C(p1, p2, p3)

C(p2, p3, p4)

C(p4, p5, p6)Computational Geometry Lecture 10: Voronoi diagrams59

Page 60: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting circle events

A circle event occurs if the sweep line reaches the bottom ofan empty circle defined by three sites that have consecutiveparabolic arcs on the beach line

We will make sure that any three sites that have consecutivearcs on the beach line and whose circle has its lowest pointbelow the sweep line have this lowest point as circle event inthe event list

Computational Geometry Lecture 10: Voronoi diagrams60

Page 61: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting circle events

In the status structure we can see all triples of consecutiveparabolic arcs that can give circle events

p5 p6

〈p4, p5〉

〈p5, p6〉

p1 p2 p3 p4

〈p2, p3〉

〈p1, p2〉 〈p3, p4〉

Computational Geometry Lecture 10: Voronoi diagrams61

Page 62: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

False alarms

We may have stored a circle event in the event list, but it maybe that it never happens . . .

This is called a false alarm

There are two reasons for false alarms: site events and othercircle events

Computational Geometry Lecture 10: Voronoi diagrams62

Page 63: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

False alarms

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

C(p1, p2, p3)

C(p2, p3, p4)

α3 will disappear

An arc that was involved in a circle event may disappearearlier

Computational Geometry Lecture 10: Voronoi diagrams63

Page 64: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

False alarms

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

C(p2, p3, p4)p7

The circle of a circle event may turn out not to be empty

Computational Geometry Lecture 10: Voronoi diagrams64

Page 65: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

A site event that disrupts three consecutive parabolic arcs

p5 p6

〈p4, p5〉

〈p5, p6〉

p1 p2 p3 p4

〈p2, p3〉

〈p1, p2〉 〈p3, p4〉

circle event C(p2, p3, p4)

Computational Geometry Lecture 10: Voronoi diagrams65

Page 66: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

C(p2, p3, p4)p7

Computational Geometry Lecture 10: Voronoi diagrams66

Page 67: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

A site event that disrupts three consecutive parabolic arcs

p3 p7

p5 p6

〈p4, p5〉

〈p5, p6〉

p1 p2 p3 p4

〈p2, p3〉

〈p1, p2〉〈p3, p4〉

circle event C(p2, p3, p4) gone

〈p3, p7〉

〈p7, p3〉

Computational Geometry Lecture 10: Voronoi diagrams67

Page 68: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

A circle event that disrupts three consecutive parabolic arcs

p5 p6

〈p4, p5〉

〈p5, p6〉

p1 p2 p3 p4

〈p2, p3〉

〈p1, p2〉 〈p3, p4〉

circle event C(p2, p3, p4)

circle event C(p1, p2, p3)

Computational Geometry Lecture 10: Voronoi diagrams68

Page 69: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

p1

p2p3

p4 p5

p6

α1

α2 α3 α4 α5

α6

C(p1, p2, p3)

C(p2, p3, p4)

α3 will disappear

Computational Geometry Lecture 10: Voronoi diagrams69

Page 70: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Detecting false alarms

A circle event that disrupts three consecutive parabolic arcs

p5 p6

〈p4, p5〉

〈p5, p6〉

p1 p2 p4

〈p2, p4〉

〈p1, p2〉

circle event C(p1, p2, p3) gone

Computational Geometry Lecture 10: Voronoi diagrams70

Page 71: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The data structures

Recall we have a status structure T , an event list, and aDCEL

We need pointers from T into the DCEL to be able to updateit efficiently

We need pointers from the leaves of T into the event list tobe able to remove circle events if they are false alarms

Computational Geometry Lecture 10: Voronoi diagrams71

Page 72: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

The data structures

A leaf of T has a pointer to all events in which the parabolicarc participates

Easy question: How many can there be, at most?

Computational Geometry Lecture 10: Voronoi diagrams72

Page 73: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Global algorithm

Algorithm VoronoiDiagram(P)1. Initialize the event queue Q with all site events, initialize

an empty status structure T and an emptydoubly-connected edge list D

2. while Q is not empty3. do remove the event with largest y-coordinate from Q

4. if the event is a site event, occurring at site pi

5. then HandleSiteEvent(pi)6. else HandleCircleEvent(γ), where γ is the

leaf of T representing the arc that willdisappear

7. When all events are handled, we must still fix thedoubly-connected edge list with respect to the boundingbox, and to add face information

Computational Geometry Lecture 10: Voronoi diagrams73

Page 74: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Site event actions

At a site event, at a site pi on the sweep line `:

Find the parabolic arc α vertically above pi in T

Remove the false alarm with α in the middle from theevent list (if it exists)

Update T: one arc is split and a new one for pi appearsin between, and break points are updated

Make two new half-edges for the detected Voronoi edgein the DCEL

Add new circle events for the new consecutive triples(if the circle has its lowest point below `)

Computational Geometry Lecture 10: Voronoi diagrams74

Page 75: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Circle event actions

At a circle event, for circle C(pi,pj,pk) whose bottom is onthe sweep line `, and γ is the leaf of T whose arc disappears:

Remove the false alarms that involve the parabolic arccorresponding to γ

Update T: remove the leaf γ and update break points

Make a new vertex object for the Voronoi vertex, twonew half-edge objects, and connect six half-edges and thevertex in the DCEL

Add new circle events for the new consecutive triples(if the circle has its lowest point below `)

Computational Geometry Lecture 10: Voronoi diagrams75

Page 76: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Analysis

Any event removes at most two false alarms and generates atmost two new circle events

Any event is handled in O(logn) time

There are n site events and at most 2n−5 circle events(because a new Voronoi vertex is detected)

Computational Geometry Lecture 10: Voronoi diagrams76

Page 77: Lecture 10: Voronoi diagrams

MotivationVoronoi diagrams

PropertiesConstruction

Result

Theorem: The Voronoi diagram of a set of n point sites inthe plane can be computed in O(n logn) time

Computational Geometry Lecture 10: Voronoi diagrams77