Voronoi Diagram Presenter: GI1 11號 蔡逸凡

Slides:



Advertisements
Similar presentations
Order-k Voronoi Diagram in the Plane
Advertisements

Two Segments Intersect?
Polygon Triangulation
Computational Geometry
Voronoi Diagram – Fortune ’ s Algorithm Reporter: GI1 11 號 蔡逸凡 Date: 2004/10/28 Reference: Computational Geometry ch7 ISBN:
Map Overlay Algorithm. Birch forest Wolves Map 1: Vegetation Map 2: Animals.
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
Brute-Force Triangulation
2/3/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries II Carola Wenk.
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
Lecture 3: Polygon Triangulation Computational Geometry Prof. Dr. Th. Ottmann Triangulation (Naive)
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
I. The Problem of Molding Does a given object have a mold from which it can be removed? object not removable mold 1 object removable Assumptions The object.
1 Voronoi Diagrams. 2 Voronoi Diagram Input: A set of points locations (sites) in the plane.Input: A set of points locations (sites) in the plane. Output:
Department of Geoinformation Science Technische Universität Berlin WS 2006/07 Geoinformation Technology: Voronoi Diagrams Alexandra Stadler Institute for.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
3/5/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Delaunay Triangulations II Carola Wenk Based on: Computational.
9/5/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Plane Sweep Algorithms and Segment Intersection Carola Wenk.
Lecture 7: Voronoi Diagrams Presented by Allen Miu Computational Geometry September 27, 2001.
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
Computational Geometry and Spatial Data Mining
1 Lecture 8: Voronoi Diagram Computational Geometry Prof. Dr. Th. Ottmann Voronoi Diagrams Definition Characteristics Size and Storage Construction Use.
By Dor Lahav. Overview Straight Skeletons Convex Polygons Constrained Voronoi diagrams and Delauney triangulations.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Chapter 5: Voronoi Diagrams Wednesday,
Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Chapter 5: Voronoi Diagrams Monday, 2/23/04.
Lecture 10 : Delaunay Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 Overview Motivation. Triangulation of Planar Point Sets. Definition.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Delaunay Triangulation.
Mark Waitser Computational Geometry Seminar December Iterated Snap Rounding.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Voronoi Diagrams.
Polygon Triangulation Computational Geometry, WS 2006/07 Lecture 8, Part 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Brute-Force Triangulation
UNC Chapel Hill M. C. Lin Point Location Chapter 6 of the Textbook –Review –Algorithm Analysis –Dealing with Degeneracies.
CSE53111 Computational Geometry TOPICS q Preliminaries q Point in a Polygon q Polygon Construction q Convex Hulls Further Reading.
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Reagan’s unit 5 math vocab
Triangulating a monotone polygon
Planning Near-Optimal Corridors amidst Obstacles Ron Wein Jur P. van den Berg (U. Utrecht) Dan Halperin Athens May 2006.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
Week Aug-24 – Aug-29 Introduction to Spatial Computing CSE 5ISC Some slides adapted from Worboys and Duckham (2004) GIS: A Computing Perspective, Second.
1 Triangulation Supplemental From O’Rourke (Chs. 1&2) Fall 2005.
Order-k Voronoi diagram in the plane Dominique Schmitt Université de Haute-Alsace.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
2/19/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Voronoi Diagrams Carola Wenk Based on: Computational Geometry:
Voronoi Diagram (Supplemental)
Planar Graphs Graph Coloring
CMPS 3130/6130 Computational Geometry Spring 2015
UNC Chapel Hill M. C. Lin Computing Voronoi Diagram For each site p i, compute the common inter- section of the half-planes h(p i, p j ) for i  j, using.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 O’Rourke Chapter 6 with some material.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
3/3/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Delaunay Triangulations I Carola Wenk Based on: Computational.
Polygon Triangulation
Computational Geometry
CMPS 3130/6130 Computational Geometry Spring 2017
CMPS 3130/6130 Computational Geometry Spring 2017
3. Polygon Triangulation
(Slides mostly by Allen Miu)
VORONOI DIAGRAMS FOR PARALLEL HALFLINES IN 3D
Localizing the Delaunay Triangulation and its Parallel Implementation
Computational Geometry (35/33)
Craig Schroeder October 26, 2004
Enumerating Distances Using Spanners of Bounded Degree
Chapter 7 Voronoi Diagrams
I. The Problem of Molding
Computational Geometry
Presentation transcript:

Voronoi Diagram Presenter: GI1 11號 蔡逸凡 Reference: Computational Geometry ch7 ISBN: 3-540-65620-0

Outline Introduction Definitions Incremental Algorithm Fortune’s Algorithm Hardware Algorithm Applications

Where do people go to shop? Which location is suitable for new store? 7-11 Shoppers … Assumptions price is the same at every site cost = price + transportation transportation = (Euclidean distance)  (price per unit distance) consumers try to minimize the cost. Figure 7.1 The trading areas of the capitals of the twelve provinces in the Netherlands, as predicted by the Voronoi assignment model

Introduction (cont) Fire observation towers Towers on fire Facility location: center of largest empty circle Path planning: stay as far away from all obstacles as possible

Definitions Vor(P) [Voronoi diagram of P]: subdivision of the plane into n cells, one for each site in P, [Voronoi cell of pi]:the cell of Vor(P) that corresponds to a site pi V(P): the set of all points that have more than one nearest neighbor

Definition (Cont) h (p, q) h (q, p) bisector p3 p2 p1 Circumcircle of p1p2p3 Two sites Three sites

Observation 7.1

Theorem 7.2 Let P be a set of n point sites in the plane. If all the sites are collinear then Vor(P) consists of n-1 parallel lines. Otherwise, Vor(P) is connected and its edges are either segments or half-lines.

Give a bound to number of Voronoi edges and vertices Theorem 7.3 For n≧3, the number of vertices in the Voronoi diagram of a set of n point sites in the plane is at most 2n-5 and the number of edges is at most 3n-6. Give a bound to number of Voronoi edges and vertices

CP(q): largest empty circle of q w.r.t. P To characterize which bisectors and intersections define features of the Voronoi diagram we make the following: not contain any site of P

Theorem 7.4 For the Voronoi diagram Vor(P) of a set of points P the following holds: (i) A point q is a vertex of Vor(P) if and only if its largest CP(q) empty circle contains three or more sites on its boundary. q

Theorem 7.4 (Cont) (ii) The bisector between sites pi and pj defines an edge of Vor(P) if and only if there is a point q on the bisector such that CP(q) contains both pi and pj on its boundary but no other site. q

Theorem 7.4 (Cont) (ii) The bisector between sites pi and pj defines an edge of Vor(P) if and only if there is a point q on the bisector such that CP(q) contains both pi and pj on its boundary but no other site. q

Incremental Algorithm Suppose that we have already built the Voronoi diagram Vp-1, and would like to add a new sites sp. First, find the site, say si, whose Voronoi polygon contains sp, and draw the perpendicular bisector between sp and si, denoted by B(sp, si). The bisector crosses the boundary of V(si) at two points, point x1 and point x2. Site sp is to the left of the directed line segment x1x2. The line segment x1x2 divides the Voronoi polygon V(si) into two pieces, the one on the left belonging to the Voronoi polygon of sp. Thus, we get a Voronoi edge on the boundary of the Voronoi polygon of si.

Incremental Algorithm-2 Starting with the edge x1x2, expand the boundary of the Voronoi polygon of sl by the following procedure. The B(si, sl) crosses the boundary of V(si) at x2, entering the adjacent Voronoi polygon, say V(sj). Therefore, next draw the B(si, sj), and find the point, x3, at which the bisector crosses the boundary of V(sj). Similarly, find the sequence of segments of perpendicular bisectors of s and the neighboring sites until we reach the starting point x1. Let this sequence be (x1x2, x2x3, …, xm-1xm, xmx1). This sequence forms a CCW boundary of the Voronoi polygon of the new site s. Finally, we delete from Vp-1 the substructure inside the new Voronoi polygon, and thus get Vp.

Example

Example

Example

Example

Example O(n) per point insertion Total complexity: O(n2)

Complexity The method describe before: plane sweep algorithm— per Voronoi cell: total: plane sweep algorithm— Fortune’s algorithm:

Fortune’s Algorithm (1985) Use plane sweep to explore the Voronoi structure The loci of equal distance points between the focus and the directrix is a parabola Sweep line

Fortune (cont) As the sweep line moves, more parabolas got generated The intersection between parabola is the trace of equal distance point between the two sites Beach line: monotone union of parabolic arcs Break point: where two arcs meet

Site Event (Voronoi Edge) The branch starts when the sweep line first touches the site, forming a degenerate parabola (a line)

Circle Event (Voronoi Vertex) The Voronoi edge comes to an end when the circumcircle pass the sweep line At such points, the corresponding arc got removed from the beach line

Plane Sweep Algorithm (Cont) :sweep line :The closed half-plane above 12 q q s1 s2 s3

Plane Sweep Algorithm (Cont) beach line breakpoint

Observation 7.5 The beach line is x-monotone, that is, every vertical line intersects it in exactly one point. p1 p2 p3 p4

Process – Site event When reaching a new site, we consider the events where a new arc appears on the beach line

Process – Site event (Cont) What happen to the Voronoi diagram at a site event?

Lemma 7.6 The only way in which a new arc can appear on the beach line is through a site event.

Process – Circle event

Lemma 7.7 The only way in which an existing arc can disappear from the beach line is through a circle event.

The detection of circle event Does not define a potential circle event False alarm

This circle event helps to terminate the Voronoi edges Sweep line intersects the circumcircle

This, however, does not generate circle event: cir This, however, does not generate circle event: cir.circle does not intersect sweep line [site coincide w/ circle event]

Summary Site event: encounter a new site - get new arc Circle event: A new triple has converging breakpoint – has a circle event insert into the event queue The new arc is in the middle – never cause Check disappear triples that have circle event – false alarm, delete it from event queue

Structure Event queue: the priority of an event is its y-coordinate Site event: store the site Circle event: lowest point of the circle Doubly-connected edge list Binary search tree T

Structure (Cont) Binary search tree T breakpoint Site that define the arc breakpoint Binary search tree T

Example 1 p1 p2 p3 Q={p1,p2,p3} D={} Q={p2,p3} D={} T: p1

Example 1 (Cont) Q={p3} D={e1} T: p2 p1 <p2,p1>->e1

Example 1 (Cont) Q={} D={e1,e2} T: <p1,p3>->e2 p3 p2 p1

Example 1 (Cont) Q={c1} D={e1,e2} T: <p1,p3>->e2 c1 p3 p2 p1 e1<-<p2,p1>

Example 1 (Cont) Q={} D={e1,e2,e3} T: p2 p3 e3<-<p2,p3>

Example 1 (Cont) Q={} D={e1,e2,e3} T: p2 p3 e3<-<p2,p3> A visual implementation of Fortune's Voronoi algorithm

Example 2 Q={p1,p2,p3,p4} D={} Q={p2,p3,p4} D={} T: p1

Example 2 (Cont) Q={p3,p4} D={e1} T: p1 p2 <p1,p2>->e1

Example 2 (Cont) Q={c1,p4} D={e1,e2} Q={p4} D={e1,e2} T: <p1,p2>->e1 T: <p1,p2>->e1 c1 p2 p3 p1 e2<-<p3,p1> p2 p3 p1 e2<-<p3,p1>

Example 2 (Cont) Q={p4} D={e1,e2,e3} T: Q={} D={e1,e2,e3 e4,e5} T: p3 e3<-<p3,p2> <p4,p2>->e5 p2 p3 p4 e4<-<p3,p4>

Example 2 (Cont) Q={} D={e1,e2,e3 e4,e5} T: <p4,p2>->e5 p2 p3

Example 3 Q={p1,p2,p3,p4} D={} Q={p2,p3,p4} D={} T: p1

Example 3 (Cont) Q={p3,p4} D={e1} T: p2 p1 <p2,p1>->e1

Example 3 (Cont) Q={p4,c1} D={e1,e2} Q={p4} D={e1,e2} T: <p1,p3>->e2 T: <p1,p3>->e2 c1 p3 p2 p1 e1<-<p2,p1> p3 p2 p1 e1<-<p2,p1>

Example 3 (Cont)

Example 3 (Cont) Q={p4} D={e1,e2} T: <p1,p3>->e2 p3 p2 p1

Example 3 (Cont)

Example 3 (Cont)

Proofs

Theorem 7.2 (Cont) Proof: (1) Collinear: Vor(P) consists of n-1 parallel lines ... 1 2 3 n - 1 n n – 1 parallel lines

Theorem 7.2 (Cont) Proof: (2) Vor(P) is connected and its edges are either segments or half-lines. → suppose : an edge e of Vor(P) that is a full line f

Theorem 7.2 (Cont) Proof: (2) Vor(P) is connected and its edges are either segments or half-lines. → suppose : an edge e of Vor(P) that is a full line

Theorem 7.3 (Cont)

Lemma 7.6 (Cont) Proof: First possibility: suppose an already existing parabola break through the beach line, is defined by a site

Lemma 7.6 (Cont) Proof: Let denote the y-coordinate of the sweep line 12 The parabola is given by:

Lemma 7.6 (Cont) Proof: Second possibility: appear in between two arcs and

Lemma 7.6 (Cont) Proof:

Lemma 7.6 (Cont) Consequence: The beach line consists of at most 2n-1 parabolic arcs.