Top Banner
Definition and properties Fortune’s algorithm Other approaches Voronoi Diagrams Claudio Mirolo Dip. di Scienze Matematiche, Informatiche e Fisiche Università di Udine, via delle Scienze 206 – Udine [email protected] Computational Geometry www.dimi.uniud.it/claudio C. Mirolo Voronoi Diagrams
275

Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Feb 09, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

Voronoi Diagrams

Claudio Mirolo

Dip. di Scienze Matematiche, Informatiche e FisicheUniversità di Udine, via delle Scienze 206 – Udine

[email protected]

Computational Geometrywww.dimi.uniud.it/claudio

C. Mirolo Voronoi Diagrams

Page 2: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

Outline

1 Definition and propertiesconvexity and connectednessstructural complexityvertices and edges

2 Fortune’s algorithmbeach lineplane sweepdiscussion

3 Other approachesdivide et imperaexploiting sites’ distribution

C. Mirolo Voronoi Diagrams

Page 3: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

From sites

C. Mirolo Voronoi Diagrams

Page 4: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

From sites to Voronoi diagram

C. Mirolo Voronoi Diagrams

Page 5: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Outline

1 Definition and propertiesconvexity and connectednessstructural complexityvertices and edges

2 Fortune’s algorithmbeach lineplane sweepdiscussion

3 Other approachesdivide et imperaexploiting sites’ distribution

C. Mirolo Voronoi Diagrams

Page 6: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Definitions

Given a set P = p1, p2, . . . , pn of n sites = pointsin the plane

Voronoi cell:

V (pi) = q ∈ <2 : ∀j 6= i . dist(q,pi) < dist(q,pj)

dist : Euclidean distance (usually)

Voronoi diagram = plane subdivision into n cells V (pi)

C. Mirolo Voronoi Diagrams

Page 7: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Definitions

Given a set P = p1, p2, . . . , pn of n sites = pointsin the plane

Voronoi cell:

V (pi) = q ∈ <2 : ∀j 6= i . dist(q,pi) < dist(q,pj)

dist : Euclidean distance (usually)

Voronoi diagram = plane subdivision into n cells V (pi)

C. Mirolo Voronoi Diagrams

Page 8: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Definitions

Given a set P = p1, p2, . . . , pn of n sites = pointsin the plane

Voronoi cell:

V (pi) = q ∈ <2 : ∀j 6= i . dist(q,pi) < dist(q,pj)

dist : Euclidean distance (usually)

Voronoi diagram = plane subdivision into n cells V (pi)

C. Mirolo Voronoi Diagrams

Page 9: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Definitions

Given a set P = p1, p2, . . . , pn of n sites = pointsin the plane

Voronoi cell:

V (pi) = q ∈ <2 : ∀j 6= i . dist(q,pi) < dist(q,pj)

dist : Euclidean distance (usually)

Voronoi diagram = plane subdivision into n cells V (pi)

C. Mirolo Voronoi Diagrams

Page 10: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization (I): bisectors and edges

C. Mirolo Voronoi Diagrams

Page 11: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 12: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 13: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 14: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 15: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 16: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: bisectors and edges

The perpendicular bisector of pipj splits the planeinto two open halfplanes

h(pi ,pj) : containing pi

h(pj ,pi) : containing pj

⇒ V (pi) =⋂

j 6=i h(pi ,pj)

V (pi) is a (possibly unbounded) convex regionwith at most n − 1 edges and vertices

C. Mirolo Voronoi Diagrams

Page 17: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 18: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 19: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 20: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 21: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 22: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: edge graph

Consider the graph of edges and vertices of Vor(P)

If all the sites of P are collinearthen the edges of Vor(P) are n − 1 parallel lines

. . . Straightforward to see

Otherwise the graph of Vor(P) is connectedand the edges are either segments or half-lines

C. Mirolo Voronoi Diagrams

Page 23: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: kinds of edge

Suppose the full bisector of pipj is an edge e of Vor(P)

There must however exist a non-collinear site pk

Then the full bisector of pjpk intersects e

and e ∩ h(pk ,pj) cannot be on the boundary of V (pj)since pk is closer to its points than pj

C. Mirolo Voronoi Diagrams

Page 24: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: kinds of edge

Suppose the full bisector of pipj is an edge e of Vor(P)

There must however exist a non-collinear site pk

Then the full bisector of pjpk intersects e

and e ∩ h(pk ,pj) cannot be on the boundary of V (pj)since pk is closer to its points than pj

C. Mirolo Voronoi Diagrams

Page 25: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: kinds of edge

Suppose the full bisector of pipj is an edge e of Vor(P)

There must however exist a non-collinear site pk

Then the full bisector of pjpk intersects e

and e ∩ h(pk ,pj) cannot be on the boundary of V (pj)since pk is closer to its points than pj

C. Mirolo Voronoi Diagrams

Page 26: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: kinds of edge

Suppose the full bisector of pipj is an edge e of Vor(P)

There must however exist a non-collinear site pk

Then the full bisector of pjpk intersects e

and e ∩ h(pk ,pj) cannot be on the boundary of V (pj)since pk is closer to its points than pj

C. Mirolo Voronoi Diagrams

Page 27: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: kinds of edge

Suppose the full bisector of pipj is an edge e of Vor(P)

There must however exist a non-collinear site pk

Then the full bisector of pjpk intersects e

and e ∩ h(pk ,pj) cannot be on the boundary of V (pj)since pk is closer to its points than pj

C. Mirolo Voronoi Diagrams

Page 28: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: connectedness

Suppose the graph of Vor(P) is not connected

Then a cell should separate two graph components

Since Voronoi cells are convex,it must be a strip between two parallel lines

but the edges cannot be full lines

C. Mirolo Voronoi Diagrams

Page 29: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: connectedness

Suppose the graph of Vor(P) is not connected

Then a cell should separate two graph components

Since Voronoi cells are convex,it must be a strip between two parallel lines

but the edges cannot be full lines

C. Mirolo Voronoi Diagrams

Page 30: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: connectedness

Suppose the graph of Vor(P) is not connected

Then a cell should separate two graph components

Since Voronoi cells are convex,it must be a strip between two parallel lines

but the edges cannot be full lines

C. Mirolo Voronoi Diagrams

Page 31: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: connectedness

Suppose the graph of Vor(P) is not connected

Then a cell should separate two graph components

Since Voronoi cells are convex,it must be a strip between two parallel lines

but the edges cannot be full lines

C. Mirolo Voronoi Diagrams

Page 32: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: graph complexity

Voronoi diagram of n sites

Number of vertices: nv ≤ 2n − 5

Number of edges: ne ≤ 3n − 6

Remark: O( n2 ) bisectors but only O( n ) edges!

C. Mirolo Voronoi Diagrams

Page 33: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: graph complexity

Voronoi diagram of n sites

Number of vertices: nv ≤ 2n − 5

Number of edges: ne ≤ 3n − 6

Remark: O( n2 ) bisectors but only O( n ) edges!

C. Mirolo Voronoi Diagrams

Page 34: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: graph complexity

Voronoi diagram of n sites

Number of vertices: nv ≤ 2n − 5

Number of edges: ne ≤ 3n − 6

Remark: O( n2 ) bisectors but only O( n ) edges!

C. Mirolo Voronoi Diagrams

Page 35: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Properties: graph complexity

Voronoi diagram of n sites

Number of vertices: nv ≤ 2n − 5

Number of edges: ne ≤ 3n − 6

Remark: O( n2 ) bisectors but only O( n ) edges!

C. Mirolo Voronoi Diagrams

Page 36: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

Prune the k unbounded edges at new points qi

Connect the k new point to form a closed polygon

The modified graph is still connectedand has as many faces as Vor(P) + one unbounded face

C. Mirolo Voronoi Diagrams

Page 37: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

Prune the k unbounded edges at new points qi

Connect the k new point to form a closed polygon

The modified graph is still connectedand has as many faces as Vor(P) + one unbounded face

C. Mirolo Voronoi Diagrams

Page 38: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

Prune the k unbounded edges at new points qi

Connect the k new point to form a closed polygon

The modified graph is still connectedand has as many faces as Vor(P) + one unbounded face

C. Mirolo Voronoi Diagrams

Page 39: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

By Euler’s formula: n′v − n′e + n′f = 2

Moreover, the degree of each vertex is ≥ 3and each edge adds two to the overall degree, i.e.

2n′e =∑

u deg(u) ≥ 3n′v

⇒ 3n′v ≤ 2n′e = 2(n′v + n′f − 2)

C. Mirolo Voronoi Diagrams

Page 40: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

By Euler’s formula: n′v − n′e + n′f = 2

Moreover, the degree of each vertex is ≥ 3and each edge adds two to the overall degree, i.e.

2n′e =∑

u deg(u) ≥ 3n′v

⇒ 3n′v ≤ 2n′e = 2(n′v + n′f − 2)

C. Mirolo Voronoi Diagrams

Page 41: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

By Euler’s formula: n′v − n′e + n′f = 2

Moreover, the degree of each vertex is ≥ 3and each edge adds two to the overall degree, i.e.

2n′e =∑

u deg(u) ≥ 3n′v

⇒ 3n′v ≤ 2n′e = 2(n′v + n′f − 2)

C. Mirolo Voronoi Diagrams

Page 42: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

By Euler’s formula: n′v − n′e + n′f = 2

Moreover, the degree of each vertex is ≥ 3and each edge adds two to the overall degree, i.e.

2n′e =∑

u deg(u) ≥ 3n′v

⇒ 3n′v ≤ 2n′e = 2(n′v + n′f − 2)

C. Mirolo Voronoi Diagrams

Page 43: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 44: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ n′v ≤ 2(n − 1)

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 45: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ nv + k ≤ 2(n − 1)

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 46: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ nv + k ≤ 2(n − 1)

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 47: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ nv + k ≤ 2(n − 1)

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 48: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

3n′v ≤ 2(n′v + n′f − 2)

where n′f = n + 1 and n′v = nv + k

⇒ nv + k ≤ 2(n − 1)

⇒ nv ≤ 2n − k − 2 ≤ 2n − 5

(at least three unbounded edges: convex hull. . . )

C. Mirolo Voronoi Diagrams

Page 49: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

n′e = n′v + n′f − 2 where n′e = ne + k etc.

⇒ ne + k = nv + k + n + 1 − 2

⇒ ne = nv + n − 1 ≤ 2n − k − 2 + n − 1

⇒ ne ≤ 3n − k − 3 ≤ 3n − 6

C. Mirolo Voronoi Diagrams

Page 50: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

n′e = n′v + n′f − 2 where n′e = ne + k etc.

⇒ ne + k = nv + k + n + 1 − 2

⇒ ne = nv + n − 1 ≤ 2n − k − 2 + n − 1

⇒ ne ≤ 3n − k − 3 ≤ 3n − 6

C. Mirolo Voronoi Diagrams

Page 51: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

n′e = n′v + n′f − 2 where n′e = ne + k etc.

⇒ ne + k = nv + k + n + 1 − 2

⇒ ne = nv + n − 1 ≤ 2n − k − 2 + n − 1

⇒ ne ≤ 3n − k − 3 ≤ 3n − 6

C. Mirolo Voronoi Diagrams

Page 52: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

n′e = n′v + n′f − 2 where n′e = ne + k etc.

⇒ ne + k = nv + k + n + 1 − 2

⇒ ne = nv + n − 1 ≤ 2n − k − 2 + n − 1

⇒ ne ≤ 3n − k − 3 ≤ 3n − 6

C. Mirolo Voronoi Diagrams

Page 53: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: structural complexity

n′e = n′v + n′f − 2 where n′e = ne + k etc.

⇒ ne + k = nv + k + n + 1 − 2

⇒ ne = nv + n − 1 ≤ 2n − k − 2 + n − 1

⇒ ne ≤ 3n − k − 3 ≤ 3n − 6

C. Mirolo Voronoi Diagrams

Page 54: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization (II): “empty” circles

C. Mirolo Voronoi Diagrams

Page 55: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: “empty” circles

CP(q) = largest circle centered at qwith no site of P in its interior

Property: q is a vertex of Vor(P)

⇔ | P ∩ boundaryCP(q) | ≥ 3

Property: q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇔ | P ∩ boundaryCP(q) | = pi , pj

C. Mirolo Voronoi Diagrams

Page 56: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: “empty” circles

CP(q) = largest circle centered at qwith no site of P in its interior

Property: q is a vertex of Vor(P)

⇔ | P ∩ boundaryCP(q) | ≥ 3

Property: q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇔ | P ∩ boundaryCP(q) | = pi , pj

C. Mirolo Voronoi Diagrams

Page 57: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Characterization: “empty” circles

CP(q) = largest circle centered at qwith no site of P in its interior

Property: q is a vertex of Vor(P)

⇔ | P ∩ boundaryCP(q) | ≥ 3

Property: q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇔ | P ∩ boundaryCP(q) | = pi , pj

C. Mirolo Voronoi Diagrams

Page 58: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 59: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 60: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 61: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 62: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 63: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇒ )

q vertex of Vor(P)

⇒ q incident to at least three cells V (pi),V (pj),V (pk )

⇒ dist(q,pi) = dist(q,pj) = dist(q,pk )

and no other site of P is closer to q than pi ,pj ,pk

(otherwise V (pi ),V (pj ),V (pk ) would not meet at q)

⇒ the circle through pi , pj , pk is CP(q)

C. Mirolo Voronoi Diagrams

Page 64: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇐ )

| P ∩ boundaryCP(q) | ⊇ pi , pj , pk

and P ∩ interiorCP(q) = ∅

No other site of P is closer to q than pi , pj , pk

Then q belongs to the boundaries of V (pi), V (pj), V (pk )

⇒ q is a vertex of Vor(P)

C. Mirolo Voronoi Diagrams

Page 65: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇐ )

| P ∩ boundaryCP(q) | ⊇ pi , pj , pk

and P ∩ interiorCP(q) = ∅

No other site of P is closer to q than pi , pj , pk

Then q belongs to the boundaries of V (pi), V (pj), V (pk )

⇒ q is a vertex of Vor(P)

C. Mirolo Voronoi Diagrams

Page 66: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇐ )

| P ∩ boundaryCP(q) | ⊇ pi , pj , pk

and P ∩ interiorCP(q) = ∅

No other site of P is closer to q than pi , pj , pk

Then q belongs to the boundaries of V (pi), V (pj), V (pk )

⇒ q is a vertex of Vor(P)

C. Mirolo Voronoi Diagrams

Page 67: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: vertices (⇐ )

| P ∩ boundaryCP(q) | ⊇ pi , pj , pk

and P ∩ interiorCP(q) = ∅

No other site of P is closer to q than pi , pj , pk

Then q belongs to the boundaries of V (pi), V (pj), V (pk )

⇒ q is a vertex of Vor(P)

C. Mirolo Voronoi Diagrams

Page 68: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇒ )

q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇒ | P ∩ boundaryCP(q) | = pi , pj

and no other site of P is closer to q than pi ,pj

(otherwise q would not be on the boundary of V (pi ),V (pj ))

C. Mirolo Voronoi Diagrams

Page 69: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇒ )

q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇒ | P ∩ boundaryCP(q) | = pi , pj

and no other site of P is closer to q than pi ,pj

(otherwise q would not be on the boundary of V (pi ),V (pj ))

C. Mirolo Voronoi Diagrams

Page 70: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇒ )

q ∈ bisector(pipj) belongs to an edge of Vor(P)

⇒ | P ∩ boundaryCP(q) | = pi , pj

and no other site of P is closer to q than pi ,pj

(otherwise q would not be on the boundary of V (pi ),V (pj ))

C. Mirolo Voronoi Diagrams

Page 71: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇐ )

| P ∩ boundaryCP(q) | = pi , pj

and P ∩ interiorCP(q) = ∅

Then dist(q,pi) = dist(q,pj) < dist(q,pk ) for k 6= i , j

⇒ q lies on an edge of Vor(P) on bisector(pipj)

but cannot be a vertex (see above)

C. Mirolo Voronoi Diagrams

Page 72: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇐ )

| P ∩ boundaryCP(q) | = pi , pj

and P ∩ interiorCP(q) = ∅

Then dist(q,pi) = dist(q,pj) < dist(q,pk ) for k 6= i , j

⇒ q lies on an edge of Vor(P) on bisector(pipj)

but cannot be a vertex (see above)

C. Mirolo Voronoi Diagrams

Page 73: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇐ )

| P ∩ boundaryCP(q) | = pi , pj

and P ∩ interiorCP(q) = ∅

Then dist(q,pi) = dist(q,pj) < dist(q,pk ) for k 6= i , j

⇒ q lies on an edge of Vor(P) on bisector(pipj)

but cannot be a vertex (see above)

C. Mirolo Voronoi Diagrams

Page 74: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇐ )

| P ∩ boundaryCP(q) | = pi , pj

and P ∩ interiorCP(q) = ∅

Then dist(q,pi) = dist(q,pj) < dist(q,pk ) for k 6= i , j

⇒ q lies on an edge of Vor(P) on bisector(pipj)

but cannot be a vertex (see above)

C. Mirolo Voronoi Diagrams

Page 75: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Proof: edges (⇐ )

| P ∩ boundaryCP(q) | = pi , pj

and P ∩ interiorCP(q) = ∅

Then dist(q,pi) = dist(q,pj) < dist(q,pk ) for k 6= i , j

⇒ q lies on an edge of Vor(P) on bisector(pipj)

but cannot be a vertex (see above)

C. Mirolo Voronoi Diagrams

Page 76: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors of convex hull’s edges

C. Mirolo Voronoi Diagrams

Page 77: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors of convex hull’s edges

C. Mirolo Voronoi Diagrams

Page 78: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors of convex hull’s edges

q ∈ bisector(pipj), edge of convex_hull(P)

Cpi ,pj(q) = CP(q) for q away enough

Conversely, q does not lie on an unbounded edgeif pi ,pj /∈ convex_hull(P)

C. Mirolo Voronoi Diagrams

Page 79: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors of convex hull’s edges

q ∈ bisector(pipj), edge of convex_hull(P)

Cpi ,pj(q) = CP(q) for q away enough

Conversely, q does not lie on an unbounded edgeif pi ,pj /∈ convex_hull(P)

C. Mirolo Voronoi Diagrams

Page 80: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors of convex hull’s edges

q ∈ bisector(pipj), edge of convex_hull(P)

Cpi ,pj(q) = CP(q) for q away enough

Conversely, q does not lie on an unbounded edgeif pi ,pj /∈ convex_hull(P)

C. Mirolo Voronoi Diagrams

Page 81: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

convexity and connectednessstructural complexityvertices and edges

Bisectors and convex hull’s edges

C. Mirolo Voronoi Diagrams

Page 82: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Outline

1 Definition and propertiesconvexity and connectednessstructural complexityvertices and edges

2 Fortune’s algorithmbeach lineplane sweepdiscussion

3 Other approachesdivide et imperaexploiting sites’ distribution

C. Mirolo Voronoi Diagrams

Page 83: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Building a Voronoi diagram

Lower bound: Ω( n logn )

since a Voronoi diagram can be used to sort numbers

Provisional upper bound: O( n2 logn )

since each cell can be computed by intersectingn − 1 halfplanes in O( n logn ) [various techniques]

C. Mirolo Voronoi Diagrams

Page 84: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Building a Voronoi diagram

Lower bound: Ω( n logn )

since a Voronoi diagram can be used to sort numbers

Provisional upper bound: O( n2 logn )

since each cell can be computed by intersectingn − 1 halfplanes in O( n logn ) [various techniques]

C. Mirolo Voronoi Diagrams

Page 85: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Building a Voronoi diagram

Lower bound: Ω( n logn )

since a Voronoi diagram can be used to sort numbers

Provisional upper bound: O( n2 logn )

since each cell can be computed by intersectingn − 1 halfplanes in O( n logn ) [various techniques]

C. Mirolo Voronoi Diagrams

Page 86: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Building a Voronoi diagram

Lower bound: Ω( n logn )

since a Voronoi diagram can be used to sort numbers

Provisional upper bound: O( n2 logn )

since each cell can be computed by intersectingn − 1 halfplanes in O( n logn ) [various techniques]

C. Mirolo Voronoi Diagrams

Page 87: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

Sweep line moving from left to right:

When it meets the leftmost vertex of V (pi) . . .

Site pi has not yet been processed!

C. Mirolo Voronoi Diagrams

Page 88: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

Sweep line moving from left to right:

When it meets the leftmost vertex of V (pi) . . .

Site pi has not yet been processed!

C. Mirolo Voronoi Diagrams

Page 89: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

Sweep line moving from left to right:

When it meets the leftmost vertex of V (pi) . . .

Site pi has not yet been processed!

C. Mirolo Voronoi Diagrams

Page 90: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

So, when the sweep line meets event point q

Which items of Vor(P) are already known?

→ Fortune’s algorithm (1986/87)

C. Mirolo Voronoi Diagrams

Page 91: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

So, when the sweep line meets event point q

Which items of Vor(P) are already known?

→ Fortune’s algorithm (1986/87)

C. Mirolo Voronoi Diagrams

Page 92: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep?

So, when the sweep line meets event point q

Which items of Vor(P) are already known?

→ Fortune’s algorithm (1986/87)

C. Mirolo Voronoi Diagrams

Page 93: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line

C. Mirolo Voronoi Diagrams

Page 94: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line

C. Mirolo Voronoi Diagrams

Page 95: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line

C. Mirolo Voronoi Diagrams

Page 96: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line

C. Mirolo Voronoi Diagrams

Page 97: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line

C. Mirolo Voronoi Diagrams

Page 98: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Sweep line and beach line

The information associated to the sweep line is aboutthe part of Vor(P) of the sites to its left that will not change

On the left side of the beach line

C. Mirolo Voronoi Diagrams

Page 99: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Sweep line and beach line

The information associated to the sweep line is aboutthe part of Vor(P) of the sites to its left that will not change

On the left side of the beach line

C. Mirolo Voronoi Diagrams

Page 100: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Sites and parabolae

A parabola bounds the regions of points which are closerto a given site (focus) than to the sweep line (directrix)

C. Mirolo Voronoi Diagrams

Page 101: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Sites and parabolae

A parabola bounds the regions of points which are closerto a given site (focus) than to the sweep line (directrix)

C. Mirolo Voronoi Diagrams

Page 102: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line: parabolic arcs

Points in the “yellow area” are closer to a visited sitethan to any other site to the right of the sweep line

C. Mirolo Voronoi Diagrams

Page 103: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line: parabolic arcs

Voronoi edges (or edge fragments) and verticesin the “yellow area” will not change any longer

C. Mirolo Voronoi Diagrams

Page 104: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line’s properties

(i) The beach line is y -monotone

(ii) Breakpoints between parabolic arcsbelong to Voronoi edges

C. Mirolo Voronoi Diagrams

Page 105: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Beach line’s properties

(i) The beach line is y -monotone

(ii) Breakpoints between parabolic arcsbelong to Voronoi edges

C. Mirolo Voronoi Diagrams

Page 106: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

y -Monotononicity

(i) By construction:

Consider the intersections between a horizontal lineand all the parabolae relative to the visited sites. . .

and take the rightmost one

C. Mirolo Voronoi Diagrams

Page 107: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

y -Monotononicity

(i) By construction:

Consider the intersections between a horizontal lineand all the parabolae relative to the visited sites. . .

and take the rightmost one

C. Mirolo Voronoi Diagrams

Page 108: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

y -Monotononicity

(i) By construction:

Consider the intersections between a horizontal lineand all the parabolae relative to the visited sites. . .

and take the rightmost one

C. Mirolo Voronoi Diagrams

Page 109: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) Breakpoint is on the bisector of the involved sites. . .

C. Mirolo Voronoi Diagrams

Page 110: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) . . . and other sites are farther apart

C. Mirolo Voronoi Diagrams

Page 111: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 112: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 113: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 114: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 115: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 116: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Breakpoints on Voronoi edges

(ii) More formally:

q break point on the beach line betweenthe parabolic arcs produced by sites pi and pj

⇒ pi and pj lie on a circle C = CP(q)

indeed, if a third site pk would fall in the interior of C,let r be C’s radius connecting q to the sweep line. . .

then there would be a point q∗ on r equidistantfrom pk and the sweep line, i.e. on the arc of pk

⇒ q wouldn’t lie on the beach line

C. Mirolo Voronoi Diagrams

Page 117: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

From sweep line to beach line

Sweep-line structure → beach-line structure

Plane-sweep events→ changes of beach-line’s combinatorial structure

emergence of a new parabolic arc

vanishing of an existing parabolic arc

C. Mirolo Voronoi Diagrams

Page 118: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

From sweep line to beach line

Sweep-line structure → beach-line structure

Plane-sweep events→ changes of beach-line’s combinatorial structure

emergence of a new parabolic arc

vanishing of an existing parabolic arc

C. Mirolo Voronoi Diagrams

Page 119: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

From sweep line to beach line

Sweep-line structure → beach-line structure

Plane-sweep events→ changes of beach-line’s combinatorial structure

emergence of a new parabolic arc

vanishing of an existing parabolic arc

C. Mirolo Voronoi Diagrams

Page 120: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

From sweep line to beach line

Sweep-line structure → beach-line structure

Plane-sweep events→ changes of beach-line’s combinatorial structure

emergence of a new parabolic arc

vanishing of an existing parabolic arc

C. Mirolo Voronoi Diagrams

Page 121: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Emergence of a new arc

A new arc appears (only) when the sweep line meets a site

Degenerate parabola:two overlapping horizontal half-lines → site event

Arcs cannot emerge “from behind” a parabolic arc

Arcs cannot emerge at a breakpoint of the beach-line

C. Mirolo Voronoi Diagrams

Page 122: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Emergence of a new arc

A new arc appears (only) when the sweep line meets a site

Degenerate parabola:two overlapping horizontal half-lines → site event

Arcs cannot emerge “from behind” a parabolic arc

Arcs cannot emerge at a breakpoint of the beach-line

C. Mirolo Voronoi Diagrams

Page 123: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Emergence of a new arc

A new arc appears (only) when the sweep line meets a site

Degenerate parabola:two overlapping horizontal half-lines → site event

Arcs cannot emerge “from behind” a parabolic arc

Arcs cannot emerge at a breakpoint of the beach-line

C. Mirolo Voronoi Diagrams

Page 124: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Emergence of a new arc

A new arc appears (only) when the sweep line meets a site

Degenerate parabola:two overlapping horizontal half-lines → site event

Arcs cannot emerge “from behind” a parabolic arc

Arcs cannot emerge at a breakpoint of the beach-line

C. Mirolo Voronoi Diagrams

Page 125: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Vanishing of an existing arc

An arc disappears (only) when two breakpoints meet

The arc in between shrinks to a point q

q must be equidistant from the three involved sitesand from the sweeping line → circle event

Arcs cannot vanish “behind” a parabolic arc

C. Mirolo Voronoi Diagrams

Page 126: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Vanishing of an existing arc

An arc disappears (only) when two breakpoints meet

The arc in between shrinks to a point q

q must be equidistant from the three involved sitesand from the sweeping line → circle event

Arcs cannot vanish “behind” a parabolic arc

C. Mirolo Voronoi Diagrams

Page 127: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Vanishing of an existing arc

An arc disappears (only) when two breakpoints meet

The arc in between shrinks to a point q

q must be equidistant from the three involved sitesand from the sweeping line → circle event

Arcs cannot vanish “behind” a parabolic arc

C. Mirolo Voronoi Diagrams

Page 128: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Vanishing of an existing arc

An arc disappears (only) when two breakpoints meet

The arc in between shrinks to a point q

q must be equidistant from the three involved sitesand from the sweeping line → circle event

Arcs cannot vanish “behind” a parabolic arc

C. Mirolo Voronoi Diagrams

Page 129: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Sites pi = (xi , yi), pj = (xj , yj), sweep line at x0

Parabolic arc βi : 2x(x0 − xi) + (y − yi)2 = x2

0 − x2i

Parabolic arc βj : 2x(x0 − xj) + (y − yj)2 = x2

0 − x2j

βi ∩ βj ∈ sij : 2x(xj − xi) + 2y(yj − yi) = x2j − x2

i + y2j − y2

i

C. Mirolo Voronoi Diagrams

Page 130: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Sites pi = (xi , yi), pj = (xj , yj), sweep line at x0

Parabolic arc βi : 2x(x0 − xi) + (y − yi)2 = x2

0 − x2i

Parabolic arc βj : 2x(x0 − xj) + (y − yj)2 = x2

0 − x2j

βi ∩ βj ∈ sij : 2x(xj − xi) + 2y(yj − yi) = x2j − x2

i + y2j − y2

i

C. Mirolo Voronoi Diagrams

Page 131: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Sites pi = (xi , yi), pj = (xj , yj), sweep line at x0

Parabolic arc βi : 2x(x0 − xi) + (y − yi)2 = x2

0 − x2i

Parabolic arc βj : 2x(x0 − xj) + (y − yj)2 = x2

0 − x2j

βi ∩ βj ∈ sij : 2x(xj − xi) + 2y(yj − yi) = x2j − x2

i + y2j − y2

i

C. Mirolo Voronoi Diagrams

Page 132: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Sites pi = (xi , yi), pj = (xj , yj), sweep line at x0

Parabolic arc βi : 2x(x0 − xi) + (y − yi)2 = x2

0 − x2i

Parabolic arc βj : 2x(x0 − xj) + (y − yj)2 = x2

0 − x2j

βi ∩ βj ∈ sij : 2x(xj − xi) + 2y(yj − yi) = x2j − x2

i + y2j − y2

i

C. Mirolo Voronoi Diagrams

Page 133: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Sites pi = (xi , yi), pj = (xj , yj), sweep line at x0

Parabolic arc βi : 2x(x0 − xi) + (y − yi)2 = x2

0 − x2i

Parabolic arc βj : 2x(x0 − xj) + (y − yj)2 = x2

0 − x2j

βi ∩ βj ∈ sij : 2x(xj − xi) + 2y(yj − yi) = x2j − x2

i + y2j − y2

i

C. Mirolo Voronoi Diagrams

Page 134: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Midpoint of pipj : q = (xi+xj

2 ,yi+yj

2 ) ∈ sij

If pj is behind βi at some stage → q is behind βi as well

→ sij can never be a shared tangent of βi and βj . . .

whereas this should be the case at some (later/earlier)stage if βj is either to emerge from or vanish behind βi

C. Mirolo Voronoi Diagrams

Page 135: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Midpoint of pipj : q = (xi+xj

2 ,yi+yj

2 ) ∈ sij

If pj is behind βi at some stage → q is behind βi as well

→ sij can never be a shared tangent of βi and βj . . .

whereas this should be the case at some (later/earlier)stage if βj is either to emerge from or vanish behind βi

C. Mirolo Voronoi Diagrams

Page 136: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Midpoint of pipj : q = (xi+xj

2 ,yi+yj

2 ) ∈ sij

If pj is behind βi at some stage → q is behind βi as well

→ sij can never be a shared tangent of βi and βj . . .

whereas this should be the case at some (later/earlier)stage if βj is either to emerge from or vanish behind βi

C. Mirolo Voronoi Diagrams

Page 137: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Midpoint of pipj : q = (xi+xj

2 ,yi+yj

2 ) ∈ sij

If pj is behind βi at some stage → q is behind βi as well

→ sij can never be a shared tangent of βi and βj . . .

whereas this should be the case at some (later/earlier)stage if βj is either to emerge from or vanish behind βi

C. Mirolo Voronoi Diagrams

Page 138: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc can neither emerge from nor vanish behinda parabolic arc of the beach-line

Midpoint of pipj : q = (xi+xj

2 ,yi+yj

2 ) ∈ sij

If pj is behind βi at some stage → q is behind βi as well

→ sij can never be a shared tangent of βi and βj . . .

whereas this should be the case at some (later/earlier)stage if βj is either to emerge from or vanish behind βi

C. Mirolo Voronoi Diagrams

Page 139: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc cannot emerge at a breakpoint of the beach-line

pi

pj

pk

q

C. Mirolo Voronoi Diagrams

Page 140: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Justification

An arc cannot emerge at a breakpoint of the beach-line

pi

pj

pk

q

C. Mirolo Voronoi Diagrams

Page 141: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Complexity of the beach line

The beach line consists of at most 2n − 1 arcs

New arcs only appear when visiting sites. . .

. . . and possibly split an existing parabolic arc

Example: n horizontally aligned sites!

C. Mirolo Voronoi Diagrams

Page 142: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Complexity of the beach line

The beach line consists of at most 2n − 1 arcs

New arcs only appear when visiting sites. . .

. . . and possibly split an existing parabolic arc

Example: n horizontally aligned sites!

C. Mirolo Voronoi Diagrams

Page 143: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Complexity of the beach line

The beach line consists of at most 2n − 1 arcs

New arcs only appear when visiting sites. . .

. . . and possibly split an existing parabolic arc

Example: n horizontally aligned sites!

C. Mirolo Voronoi Diagrams

Page 144: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Complexity of the beach line

The beach line consists of at most 2n − 1 arcs

New arcs only appear when visiting sites. . .

. . . and possibly split an existing parabolic arc

Example: n horizontally aligned sites!

C. Mirolo Voronoi Diagrams

Page 145: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Fortune’s algorithm (re-interpreted by Guibas & Stolfi)

C. Mirolo Voronoi Diagrams

Page 146: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep events

Site event:

The sweep line meets a new site

Circle event:

The sweep line gets tangent to a circlemeeting three sites on its boundary

C. Mirolo Voronoi Diagrams

Page 147: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep events

Site event:

The sweep line meets a new site

Circle event:

The sweep line gets tangent to a circlemeeting three sites on its boundary

C. Mirolo Voronoi Diagrams

Page 148: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep events

Site event:

The sweep line meets a new site

Circle event:

The sweep line gets tangent to a circlemeeting three sites on its boundary

C. Mirolo Voronoi Diagrams

Page 149: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Plane sweep events

Site event:

The sweep line meets a new site

Circle event:

The sweep line gets tangent to a circlemeeting three sites on its boundary

C. Mirolo Voronoi Diagrams

Page 150: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Site events

(i) Site event involving an arc of the beach-line:A new Voronoi edge is being drawn from a midway point

C. Mirolo Voronoi Diagrams

Page 151: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Site events

(i) Site event involving an arc of the beach-line:A new Voronoi edge is being drawn from a midway point

C. Mirolo Voronoi Diagrams

Page 152: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Site events

(ii) Site event involving a breakpoint of the beach-line:A new vertex is found and two new incident edges start

C. Mirolo Voronoi Diagrams

Page 153: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Site events

(ii) Site event involving a breakpoint of the beach-line:A new vertex is found and two new incident edges start

C. Mirolo Voronoi Diagrams

Page 154: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Site events

(ii) Site event involving a breakpoint of the beach-line:A new vertex is found and two new incident edges start

C. Mirolo Voronoi Diagrams

Page 155: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events

Circle event: Two edges meet at a new vertexand a new incident edge starts

C. Mirolo Voronoi Diagrams

Page 156: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events

Circle event: Two edges meet at a new vertexand a new incident edge starts

C. Mirolo Voronoi Diagrams

Page 157: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events

Circle event: Two edges meet at a new vertexand a new incident edge starts

C. Mirolo Voronoi Diagrams

Page 158: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events

Circle event: Two edges meet at a new vertexand a new incident edge starts

C. Mirolo Voronoi Diagrams

Page 159: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detecting events

Site events are all knownsince the beginning

Circle events are discoveredduring the plane sweep process

C. Mirolo Voronoi Diagrams

Page 160: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detecting events

Site events are all knownsince the beginning

Circle events are discoveredduring the plane sweep process

C. Mirolo Voronoi Diagrams

Page 161: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 162: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 163: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 164: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 165: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 166: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Data structures

Representation of the subdivision: DCEL (e.g.)

Event queue: balanced search tree

Beach-line structure: balanced search treeleaves → parabolic arcs

inner nodes → breakpoints

Cross-pointers between related structures

C. Mirolo Voronoi Diagrams

Page 167: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

DCEL of a Voronoi diagram?

A Voronoi diagram includes unbounded edges

As such, it cannot be represented by a DCEL

This is not an issue during construction:efficient access to the relevant itemsis guaranteed via the beach-line structure

However: bounding box to complete the DCEL

C. Mirolo Voronoi Diagrams

Page 168: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

DCEL of a Voronoi diagram?

A Voronoi diagram includes unbounded edges

As such, it cannot be represented by a DCEL

This is not an issue during construction:efficient access to the relevant itemsis guaranteed via the beach-line structure

However: bounding box to complete the DCEL

C. Mirolo Voronoi Diagrams

Page 169: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

DCEL of a Voronoi diagram?

A Voronoi diagram includes unbounded edges

As such, it cannot be represented by a DCEL

This is not an issue during construction:efficient access to the relevant itemsis guaranteed via the beach-line structure

However: bounding box to complete the DCEL

C. Mirolo Voronoi Diagrams

Page 170: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

DCEL of a Voronoi diagram?

A Voronoi diagram includes unbounded edges

As such, it cannot be represented by a DCEL

This is not an issue during construction:efficient access to the relevant itemsis guaranteed via the beach-line structure

However: bounding box to complete the DCEL

C. Mirolo Voronoi Diagrams

Page 171: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

DCEL of a Voronoi diagram?

A Voronoi diagram includes unbounded edges

As such, it cannot be represented by a DCEL

This is not an issue during construction:efficient access to the relevant itemsis guaranteed via the beach-line structure

However: bounding box to complete the DCEL

C. Mirolo Voronoi Diagrams

Page 172: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Tree structure representing the beach line

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p

1

p1:p

2

p2:p

3

p3:p

4

pointers to andfrom event queue

pointerto DCEL

pointerto DCEL

pointerto DCEL

pointerto DCEL

Page 173: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Nodes of the beach-line structures

Leaves: parabolic arcsrepresented by related sites

Inner nodes: breakpointsrepresented by pairs of sites

items and (inner node’s) pairsare sorted from bottom to top

parabolae (equations)are not stored explicitly

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 174: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Nodes of the beach-line structures

Leaves: parabolic arcsrepresented by related sites

Inner nodes: breakpointsrepresented by pairs of sites

items and (inner node’s) pairsare sorted from bottom to top

parabolae (equations)are not stored explicitly

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 175: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Nodes of the beach-line structures

Leaves: parabolic arcsrepresented by related sites

Inner nodes: breakpointsrepresented by pairs of sites

items and (inner node’s) pairsare sorted from bottom to top

parabolae (equations)are not stored explicitly

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 176: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Nodes of the beach-line structures

Leaves: parabolic arcsrepresented by related sites

Inner nodes: breakpointsrepresented by pairs of sites

items and (inner node’s) pairsare sorted from bottom to top

parabolae (equations)are not stored explicitly

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 177: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Nodes of the beach-line structures

Leaves: parabolic arcsrepresented by related sites

Inner nodes: breakpointsrepresented by pairs of sites

items and (inner node’s) pairsare sorted from bottom to top

parabolae (equations)are not stored explicitly

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 178: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Extra pointers to DCEL half-edges

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2:p1

p1:p2

p2:p3

p3:p4

Page 179: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Extra pointers to the queued circle events

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

nil

nil

nil

nil

q

Page 180: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Accessing the beach-line: new sites

Arc (breakpoint)to the left of a new site?

At inner nodes y -testof site against breakpoint

Computed in O(1) from threesites and sweep-line position

Determination of arc/breakpointin O( logn )

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 181: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Accessing the beach-line: new sites

Arc (breakpoint)to the left of a new site?

At inner nodes y -testof site against breakpoint

Computed in O(1) from threesites and sweep-line position

Determination of arc/breakpointin O( logn )

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 182: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Accessing the beach-line: new sites

Arc (breakpoint)to the left of a new site?

At inner nodes y -testof site against breakpoint

Computed in O(1) from threesites and sweep-line position

Determination of arc/breakpointin O( logn )

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 183: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Accessing the beach-line: new sites

Arc (breakpoint)to the left of a new site?

At inner nodes y -testof site against breakpoint

Computed in O(1) from threesites and sweep-line position

Determination of arc/breakpointin O( logn )

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 184: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Accessing the beach-line: new sites

Arc (breakpoint)to the left of a new site?

At inner nodes y -testof site against breakpoint

Computed in O(1) from threesites and sweep-line position

Determination of arc/breakpointin O( logn )

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

p1

p2

p3

p4

p2:p1

p1:p2

p2:p3

p3:p4

Page 185: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Items of the event queue

Site events: representedby the sites, of course

Circle events: represented bythe rightmost point of the circle. . .

. . . and holding a referenceto the vanishing arc’s leaf

C. Mirolo Voronoi Diagrams

Page 186: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Items of the event queue

Site events: representedby the sites, of course

Circle events: represented bythe rightmost point of the circle. . .

. . . and holding a referenceto the vanishing arc’s leaf

C. Mirolo Voronoi Diagrams

Page 187: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Items of the event queue

Site events: representedby the sites, of course

Circle events: represented bythe rightmost point of the circle. . .

. . . and holding a referenceto the vanishing arc’s leaf

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

q

Page 188: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Items of the event queue

Site events: representedby the sites, of course

Circle events: represented bythe rightmost point of the circle. . .

. . . and holding a referenceto the vanishing arc’s leaf

C. Mirolo Voronoi Diagrams

p1

p2

p3

p4

β1

β2

β3

β4

β5

p2

q

Page 189: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Potential circle events

At each occurrence of a site/circle event the beach-line’stopological structure is subjected to changes

Potential circle events are to be found in connectionwith (new) triples of consecutive arcs. . .

. . . provided the breakpoints move along bisectorsthat converge on the right side of the beach-line

A triple may however disappearbefore the circle event actually occurs: false alarm

C. Mirolo Voronoi Diagrams

Page 190: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Potential circle events

At each occurrence of a site/circle event the beach-line’stopological structure is subjected to changes

Potential circle events are to be found in connectionwith (new) triples of consecutive arcs. . .

. . . provided the breakpoints move along bisectorsthat converge on the right side of the beach-line

A triple may however disappearbefore the circle event actually occurs: false alarm

C. Mirolo Voronoi Diagrams

Page 191: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Potential circle events

At each occurrence of a site/circle event the beach-line’stopological structure is subjected to changes

Potential circle events are to be found in connectionwith (new) triples of consecutive arcs. . .

. . . provided the breakpoints move along bisectorsthat converge on the right side of the beach-line

A triple may however disappearbefore the circle event actually occurs: false alarm

C. Mirolo Voronoi Diagrams

Page 192: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Potential circle events

At each occurrence of a site/circle event the beach-line’stopological structure is subjected to changes

Potential circle events are to be found in connectionwith (new) triples of consecutive arcs. . .

. . . provided the breakpoints move along bisectorsthat converge on the right side of the beach-line

A triple may however disappearbefore the circle event actually occurs: false alarm

C. Mirolo Voronoi Diagrams

Page 193: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Potential circle events

At each occurrence of a site/circle event the beach-line’stopological structure is subjected to changes

Potential circle events are to be found in connectionwith (new) triples of consecutive arcs. . .

. . . provided the breakpoints move along bisectorsthat converge on the right side of the beach-line

A triple may however disappearbefore the circle event actually occurs: false alarm

C. Mirolo Voronoi Diagrams

Page 194: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 195: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 196: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 197: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 198: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 199: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

Vertex v → triple pi , pj , pk

P ∩ boundaryCP(v) = pi , pj , pk

q /∈ pi , pj , pk : rightmost point on boundaryCP(v)

q, pi , pj , pk : clockwise around v

(Special cases are omitted here)

C. Mirolo Voronoi Diagrams

Page 200: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

. . . Or site events horizontally aligned with a breakpoint

P ∩ boundaryCP(v) = pi , pj , pk

q = pk : rightmost point on boundaryCP(v)

C. Mirolo Voronoi Diagrams

Page 201: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

. . . Or site events horizontally aligned with a breakpoint

P ∩ boundaryCP(v) = pi , pj , pk

q = pk : rightmost point on boundaryCP(v)

C. Mirolo Voronoi Diagrams

Page 202: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

. . . Or site events horizontally aligned with a breakpoint

P ∩ boundaryCP(v) = pi , pj , pk

q = pk : rightmost point on boundaryCP(v)

C. Mirolo Voronoi Diagrams

Page 203: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

All Voronoi vertices are detected by processing circle events. . .

. . . Or site events horizontally aligned with a breakpoint

P ∩ boundaryCP(v) = pi , pj , pk

q = pk : rightmost point on boundaryCP(v)

C. Mirolo Voronoi Diagrams

Page 204: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 205: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 206: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 207: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 208: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 209: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

“Just before” (a tiny amount)the sweep line meets q . . .

Let C′ be the circle through pi , pjand tangent to the sweep line

C′ doesn’t containother sites inside or on it

Then arc(pj) has length 6= 0and is adjacent to arc(pi)(at a point on a Voronoi edge)

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 210: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

For similar reasons, (the same)arc(pj) is adjacent to arc(pk )

So, “just before”the sweep line meets q . . .

arc(pi), arc(pj) and arc(pk )are adjacent on the beach-line

Therefore, the circle event at qmust be in the event queue

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 211: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

For similar reasons, (the same)arc(pj) is adjacent to arc(pk )

So, “just before”the sweep line meets q . . .

arc(pi), arc(pj) and arc(pk )are adjacent on the beach-line

Therefore, the circle event at qmust be in the event queue

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 212: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

For similar reasons, (the same)arc(pj) is adjacent to arc(pk )

So, “just before”the sweep line meets q . . .

arc(pi), arc(pj) and arc(pk )are adjacent on the beach-line

Therefore, the circle event at qmust be in the event queue

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 213: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

For similar reasons, (the same)arc(pj) is adjacent to arc(pk )

So, “just before”the sweep line meets q . . .

arc(pi), arc(pj) and arc(pk )are adjacent on the beach-line

Therefore, the circle event at qmust be in the event queue

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 214: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Detection of Voronoi vertices

Voronoi vertices that are detected by processing circle events

For similar reasons, (the same)arc(pj) is adjacent to arc(pk )

So, “just before”the sweep line meets q . . .

arc(pi), arc(pj) and arc(pk )are adjacent on the beach-line

Therefore, the circle event at qmust be in the event queue

C. Mirolo Voronoi Diagrams

pi

pk

pj

v q

Page 215: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Fortune’s plane sweep

input: set of sites P = p1,p2, . . . pn 1. the event queue Q is initialized with all site events;2. the beach-line tree T and the Voronoi DCEL V are empty;3. while Q 6= ∅ do4. remove from Q the leftmost event ev(q);5. if ev(q = pi) is a site event then6. process site event at pi ;

else // ev(q) is a circle event7. process circle event at q;

endwhile;// T ’s inner nodes refer to unbounded edges of Vor(P)

8. V is finalized within a bounding box

C. Mirolo Voronoi Diagrams

Page 216: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Fortune’s plane sweep

input: set of sites P = p1,p2, . . . pn 1. the event queue Q is initialized with all site events;2. the beach-line tree T and the Voronoi DCEL V are empty;3. while Q 6= ∅ do4. remove from Q the leftmost event ev(q);5. if ev(q = pi) is a site event then6. process site event at pi ;

else // ev(q) is a circle event7. process circle event at q;

endwhile;// T ’s inner nodes refer to unbounded edges of Vor(P)

8. V is finalized within a bounding box

C. Mirolo Voronoi Diagrams

Page 217: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Fortune’s plane sweep

input: set of sites P = p1,p2, . . . pn 1. the event queue Q is initialized with all site events;2. the beach-line tree T and the Voronoi DCEL V are empty;3. while Q 6= ∅ do4. remove from Q the leftmost event ev(q);5. if ev(q = pi) is a site event then6. process site event at pi ;

else // ev(q) is a circle event7. process circle event at q;

endwhile;// T ’s inner nodes refer to unbounded edges of Vor(P)

8. V is finalized within a bounding box

C. Mirolo Voronoi Diagrams

Page 218: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Fortune’s plane sweep

input: set of sites P = p1,p2, . . . pn 1. the event queue Q is initialized with all site events;2. the beach-line tree T and the Voronoi DCEL V are empty;3. while Q 6= ∅ do4. remove from Q the leftmost event ev(q);5. if ev(q = pi) is a site event then6. process site event at pi ;

else // ev(q) is a circle event7. process circle event at q;

endwhile;// T ’s inner nodes refer to unbounded edges of Vor(P)

8. V is finalized within a bounding box

C. Mirolo Voronoi Diagrams

Page 219: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 220: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 221: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 222: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 223: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 224: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 225: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 226: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 227: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else // assume pi not horizontally aligned with a breakpoint3. search T for the arc β∗ to the left of pi ;4. if β∗ points to a circle event then delete it // false alarm5. update T by splitting β∗ and inserting β in-between

// how in more detail?6. add to V a new edge to be traced by β’s breakpoints

// twin half-edge records to be completed later7. test the new triples including β as first/last arc

to detect potential circle events and add them to Q;// if β is the middle arc the breakpoints diverge

C. Mirolo Voronoi Diagrams

Page 228: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 229: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 230: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 231: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 232: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 233: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 234: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 235: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing circle event at q

1. update T by deleting the vanishing arc β∗ (leaf)pointed to by ev(q); // how in more detail?

2. delete from Q possible circle events pointed to by the arcs(previously) adjacent to β∗; // such events would involve β∗

3. add to V a new vertex = circle center and a new edge to betraced by the breakpoint between the arcs adjacent to β∗;// everything must be linked appropriately

4. test the new triples with the arcs adjacent to β∗ as middlearcs to detect potential circle events and add them to Q;// cross-pointers are set appropriately

C. Mirolo Voronoi Diagrams

Page 236: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi (continued)

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else if pi horizontally aligned with a breakpoint3. . . .4. . . . // related reasoning

C. Mirolo Voronoi Diagrams

Page 237: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi (continued)

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else if pi horizontally aligned with a breakpoint3. . . .4. . . . // related reasoning

C. Mirolo Voronoi Diagrams

Page 238: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Processing site event at pi (continued)

1. if T = ∅ then2. insert an arc β (leaf) for pi into T ;

else if pi horizontally aligned with a breakpoint3. . . .4. . . . // related reasoning

C. Mirolo Voronoi Diagrams

Page 239: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Site events: n

Processed circle events (→ vertices): < 2n

False alarms: O( n )

at most one/two false alarms are deletedwhile processing actual site/circle events

Max size of T , Q, V : O( n )

Storage : O( n )

C. Mirolo Voronoi Diagrams

Page 240: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Site events: n

Processed circle events (→ vertices): < 2n

False alarms: O( n )

at most one/two false alarms are deletedwhile processing actual site/circle events

Max size of T , Q, V : O( n )

Storage : O( n )

C. Mirolo Voronoi Diagrams

Page 241: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Site events: n

Processed circle events (→ vertices): < 2n

False alarms: O( n )

at most one/two false alarms are deletedwhile processing actual site/circle events

Max size of T , Q, V : O( n )

Storage : O( n )

C. Mirolo Voronoi Diagrams

Page 242: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Site events: n

Processed circle events (→ vertices): < 2n

False alarms: O( n )

at most one/two false alarms are deletedwhile processing actual site/circle events

Max size of T , Q, V : O( n )

Storage : O( n )

C. Mirolo Voronoi Diagrams

Page 243: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Site events: n

Processed circle events (→ vertices): < 2n

False alarms: O( n )

at most one/two false alarms are deletedwhile processing actual site/circle events

Max size of T , Q, V : O( n )

Storage : O( n )

C. Mirolo Voronoi Diagrams

Page 244: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Event processing steps: O( n )

Basic operations on the beach-line tree T : O( logn )

Basic operations on the event queue Q: O( logn )

Local operations on the DCEL V : O( 1 )

Overall runtime costs : O( n logn )

C. Mirolo Voronoi Diagrams

Page 245: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Event processing steps: O( n )

Basic operations on the beach-line tree T : O( logn )

Basic operations on the event queue Q: O( logn )

Local operations on the DCEL V : O( 1 )

Overall runtime costs : O( n logn )

C. Mirolo Voronoi Diagrams

Page 246: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Event processing steps: O( n )

Basic operations on the beach-line tree T : O( logn )

Basic operations on the event queue Q: O( logn )

Local operations on the DCEL V : O( 1 )

Overall runtime costs : O( n logn )

C. Mirolo Voronoi Diagrams

Page 247: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Event processing steps: O( n )

Basic operations on the beach-line tree T : O( logn )

Basic operations on the event queue Q: O( logn )

Local operations on the DCEL V : O( 1 )

Overall runtime costs : O( n logn )

C. Mirolo Voronoi Diagrams

Page 248: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Computation costs

Event processing steps: O( n )

Basic operations on the beach-line tree T : O( logn )

Basic operations on the event queue Q: O( logn )

Local operations on the DCEL V : O( 1 )

Overall runtime costs : O( n logn )

C. Mirolo Voronoi Diagrams

Page 249: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Degenerate cases

x(pi) = x(pj) :in most cases the processing order does not matter. . .

. . . but specific treatment if they are the first two sites!(horizontal edge, unbounded to the left)

Vertices of degree > 3 → overlapping circle events. . .

. . . post-processing to deal with zero-length edges?

C. Mirolo Voronoi Diagrams

Page 250: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Degenerate cases

x(pi) = x(pj) :in most cases the processing order does not matter. . .

. . . but specific treatment if they are the first two sites!(horizontal edge, unbounded to the left)

Vertices of degree > 3 → overlapping circle events. . .

. . . post-processing to deal with zero-length edges?

C. Mirolo Voronoi Diagrams

Page 251: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Degenerate cases

x(pi) = x(pj) :in most cases the processing order does not matter. . .

. . . but specific treatment if they are the first two sites!(horizontal edge, unbounded to the left)

Vertices of degree > 3 → overlapping circle events. . .

. . . post-processing to deal with zero-length edges?

C. Mirolo Voronoi Diagrams

Page 252: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Degenerate cases

x(pi) = x(pj) :in most cases the processing order does not matter. . .

. . . but specific treatment if they are the first two sites!(horizontal edge, unbounded to the left)

Vertices of degree > 3 → overlapping circle events. . .

. . . post-processing to deal with zero-length edges?

C. Mirolo Voronoi Diagrams

Page 253: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events may overlap

Circle event: Vertices with degree larger than threeare connected to “coincident” circle events

C. Mirolo Voronoi Diagrams

Page 254: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events may overlap

Circle event: Vertices with degree larger than threeare connected to “coincident” circle events

C. Mirolo Voronoi Diagrams

Page 255: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events may overlap

Circle event: Vertices with degree larger than threeare connected to “coincident” circle events

C. Mirolo Voronoi Diagrams

Page 256: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

beach lineplane sweepdiscussion

Circle events may overlap

Circle event: Vertices with degree larger than threeare connected to “coincident” circle events

C. Mirolo Voronoi Diagrams

Page 257: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Outline

1 Definition and propertiesconvexity and connectednessstructural complexityvertices and edges

2 Fortune’s algorithmbeach lineplane sweepdiscussion

3 Other approachesdivide et imperaexploiting sites’ distribution

C. Mirolo Voronoi Diagrams

Page 258: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Shamos & Hoey’s divide-et-impera algorithm

P split into two halves PL and PR

pi ∈ PL, pj ∈ PR ⇒ x(pi) ≤ x(pj)

Recursive computation of Vor(PL) and Vor(PR)

Vor(PL), Vor(PR) are then merged into Vor(P) in O(n)

. . . which results into a O( n logn ) algorithm

C. Mirolo Voronoi Diagrams

Page 259: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Shamos & Hoey’s divide-et-impera algorithm

P split into two halves PL and PR

pi ∈ PL, pj ∈ PR ⇒ x(pi) ≤ x(pj)

Recursive computation of Vor(PL) and Vor(PR)

Vor(PL), Vor(PR) are then merged into Vor(P) in O(n)

. . . which results into a O( n logn ) algorithm

C. Mirolo Voronoi Diagrams

Page 260: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Shamos & Hoey’s divide-et-impera algorithm

P split into two halves PL and PR

pi ∈ PL, pj ∈ PR ⇒ x(pi) ≤ x(pj)

Recursive computation of Vor(PL) and Vor(PR)

Vor(PL), Vor(PR) are then merged into Vor(P) in O(n)

. . . which results into a O( n logn ) algorithm

C. Mirolo Voronoi Diagrams

Page 261: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Shamos & Hoey’s divide-et-impera algorithm

P split into two halves PL and PR

pi ∈ PL, pj ∈ PR ⇒ x(pi) ≤ x(pj)

Recursive computation of Vor(PL) and Vor(PR)

Vor(PL), Vor(PR) are then merged into Vor(P) in O(n)

. . . which results into a O( n logn ) algorithm

C. Mirolo Voronoi Diagrams

Page 262: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Shamos & Hoey’s divide-et-impera algorithm

P split into two halves PL and PR

pi ∈ PL, pj ∈ PR ⇒ x(pi) ≤ x(pj)

Recursive computation of Vor(PL) and Vor(PR)

Vor(PL), Vor(PR) are then merged into Vor(P) in O(n)

. . . which results into a O( n logn ) algorithm

C. Mirolo Voronoi Diagrams

Page 263: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

∃ y -monotone polygonal line s such thatpoints to the left (right) of s are closer to a site of PL (PR)than to any site of PR (PL)

The unbounded edges of s lie on the bisectorsof two sides of convex_hull(P)

Such sides connect convex_hull(PL) and convex_hull(PR)(refer to Preparata & Hong’s convex hull algorithm)

We can start from one of the unbounded edges andtraverse the cells of Vor(PL) and Vor(PR) to build s

C. Mirolo Voronoi Diagrams

Page 264: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

∃ y -monotone polygonal line s such thatpoints to the left (right) of s are closer to a site of PL (PR)than to any site of PR (PL)

The unbounded edges of s lie on the bisectorsof two sides of convex_hull(P)

Such sides connect convex_hull(PL) and convex_hull(PR)(refer to Preparata & Hong’s convex hull algorithm)

We can start from one of the unbounded edges andtraverse the cells of Vor(PL) and Vor(PR) to build s

C. Mirolo Voronoi Diagrams

Page 265: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

∃ y -monotone polygonal line s such thatpoints to the left (right) of s are closer to a site of PL (PR)than to any site of PR (PL)

The unbounded edges of s lie on the bisectorsof two sides of convex_hull(P)

Such sides connect convex_hull(PL) and convex_hull(PR)(refer to Preparata & Hong’s convex hull algorithm)

We can start from one of the unbounded edges andtraverse the cells of Vor(PL) and Vor(PR) to build s

C. Mirolo Voronoi Diagrams

Page 266: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

∃ y -monotone polygonal line s such thatpoints to the left (right) of s are closer to a site of PL (PR)than to any site of PR (PL)

The unbounded edges of s lie on the bisectorsof two sides of convex_hull(P)

Such sides connect convex_hull(PL) and convex_hull(PR)(refer to Preparata & Hong’s convex hull algorithm)

We can start from one of the unbounded edges andtraverse the cells of Vor(PL) and Vor(PR) to build s

C. Mirolo Voronoi Diagrams

Page 267: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

∃ y -monotone polygonal line s such thatpoints to the left (right) of s are closer to a site of PL (PR)than to any site of PR (PL)

The unbounded edges of s lie on the bisectorsof two sides of convex_hull(P)

Such sides connect convex_hull(PL) and convex_hull(PR)(refer to Preparata & Hong’s convex hull algorithm)

We can start from one of the unbounded edges andtraverse the cells of Vor(PL) and Vor(PR) to build s

C. Mirolo Voronoi Diagrams

Page 268: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

C. Mirolo Voronoi Diagrams

Page 269: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Merging stage

C. Mirolo Voronoi Diagrams

Page 270: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Remarks

Notice that the overall size of Vor(PL) ∪ Vor(PR) is O(n)

The convex hull of the site subsets processed recursivelycan be build accordingly via Shamos & Hoey’s technique

C. Mirolo Voronoi Diagrams

Page 271: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Remarks

Notice that the overall size of Vor(PL) ∪ Vor(PR) is O(n)

The convex hull of the site subsets processed recursivelycan be build accordingly via Shamos & Hoey’s technique

C. Mirolo Voronoi Diagrams

Page 272: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Bentley, Weide & Yao (1980)

Sites of P uniformly distributed in a bounded box

Vor(P) can be constructed in O( n ) expected time

C. Mirolo Voronoi Diagrams

Page 273: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

Definition and propertiesFortune’s algorithmOther approaches

divide et imperaexploiting sites’ distribution

Bentley, Weide & Yao (1980)

Sites of P uniformly distributed in a bounded box

Vor(P) can be constructed in O( n ) expected time

C. Mirolo Voronoi Diagrams

Page 274: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

References

References

S. Fortune (1987)A Sweepline Algorithm for Voronoi DiagramsAlgorithmica, 2(1)

L.J. Guibas & J. Stolfi (1988)Ruler, Compass and ComputerTheoretical Foundations of Computer Graphics and CADNATO ASI Series, 40

C. Mirolo Voronoi Diagrams

Page 275: Definition and properties Other approachesclaudio.mirolo/... · Definition and properties Fortune’s algorithm Other approaches convexity and connectedness structural complexity

References

References

M.I. Shamos & S.D. Hoey (1975)Closest-point ProblemsProc. of the IEEE Symposiumon Foundations of Computer Science

J.L. Bentley, B.W. Weide & A.C. Yao (1980)Optimal Expected-Time Algorithmsfor Closest Point ProblemsACM Transactions on Mathematical Software, 6(4)

C. Mirolo Voronoi Diagrams