CMPS 3130/6130 Computational Geometry Spring 2015

Slides:



Advertisements
Similar presentations
Two Segments Intersect?
Advertisements

Polygon Triangulation
Spatial Information Systems (SIS) COMP Terrain modeling and geometric problems (part 2)
Computational Geometry
Map Overlay Algorithm. Birch forest Wolves Map 1: Vegetation Map 2: Animals.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
1/13/15CMPS 3130/6130: Computational Geometry1 CMPS 3130/6130: Computational Geometry Spring 2015 Convex Hulls Carola Wenk.
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.
CS16: Introduction to Data Structures & Algorithms
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
© The McGraw-Hill Companies, Inc., Chapter 2 The Complexity of Algorithms and the Lower Bounds of Problems.
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:
Overlay of Two Subdivisions
Zoo-Keeper’s Problem An O(nlogn) algorithm for the zoo-keeper’s problem Sergei Bespamyatnikh Computational Geometry 24 (2003), pp th CGC Workshop.
9/5/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Plane Sweep Algorithms and Segment Intersection Carola Wenk.
Intersections. Intersection Problem 3 Intersection Detection: Given two geometric objects, do they intersect? Intersection detection (test) is frequently.
November 4, Algorithms and Data Structures Lecture XIV Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Computational Geometry Piyush Kumar (Lecture 3: Convexity and Convex hulls) Welcome to CIS5930.
Robert Pless, CS 546: Computational Geometry Lecture #3 Last Time: Convex Hulls Today: Plane Sweep Algorithms, Segment Intersection, + (Element Uniqueness,
CS138A Line Segment Intersection Peter Schröder.
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
Klee’s Measure Problem Computational Geometry, WS 2007/08 Group Work Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen, Institut.
Line Segment Intersection Computational Geometry, WS 2007/08 Lecture 3 – Part I Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Lecture 12 : Special Case of Hidden-Line-Elimination Computational Geometry Prof. Dr. Th. Ottmann 1 Special Cases of the Hidden Line Elimination Problem.
Special Cases of the Hidden Line Elimination Problem Computational Geometry, WS 2007/08 Lecture 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen,
2 -1 Chapter 2 The Complexity of Algorithms and the Lower Bounds of Problems.
Hidden-Line Elimination Computational Geometry, WS 2006/07 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
Closest Pair of Points Computational Geometry, WS 2006/07 Lecture 9, Part II Prof. Dr. Thomas Ottmann Khaireel A. Mohamed Algorithmen & Datenstrukturen,
Lecture 6: Point Location Computational Geometry Prof. Dr. Th. Ottmann 1 Point Location 1.Trapezoidal decomposition. 2.A search structure. 3.Randomized,
Voronoi Diagrams.
Line Segment Intersection Computational Geometry, WS 2006/07 Lecture 3 – Part II Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Lecture 2 Line Segment Intersection Computational Geometry Prof.Dr.Th.Ottmann 1 Line Segment Intersection Motivation: Computing the overlay of several.
Line Segment Intersection Computational Geometry, WS 2006/07 Lecture 3 – Part I Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
Lection 1: Introduction Computational Geometry Prof.Dr.Th.Ottmann 1 History: Proof-based, algorithmic, axiomatic geometry, computational geometry today.
Lecture 2 Line Segment Intersection Computational Geometry Prof.Dr.Th.Ottmann 1 Line Segment Intersection Motivation: Computing the overlay of several.
Brute-Force Triangulation
Advanced Algorithm Design and Analysis (Lecture 9) SW5 fall 2004 Simonas Šaltenis E1-215b
1 Geometric Intersection Determining if there are intersections between graphical objects Finding all intersecting pairs Brute Force Algorithm Plane Sweep.
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
14/13/15 CMPS 3130/6130 Computational Geometry Spring 2015 Windowing Carola Wenk CMPS 3130/6130 Computational Geometry.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
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:
Computational Geometry: Intersection Search Joseph S. B. Mitchell Stony Brook University.
Data Structure II So Pak Yeung Outline Review  Array  Sorted Array  Linked List Binary Search Tree Heap Hash Table.
1/29/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries Carola Wenk.
CMPS 3130/6130 Computational Geometry Spring 2015
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Line Arrangements.
1/20/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Plane Sweep Algorithms I Carola Wenk.
Polygon Triangulation
Computational Geometry
CSE 589 Applied Algorithms Spring 1999 Prim’s Algorithm for MST Load Balance Spanning Tree Hamiltonian Path.
UNC Chapel Hill M. C. Lin Geometric Data Structures Reading: Chapter 10 of the Textbook Driving Applications –Windowing Queries Related Application –Query.
CMPS 3130/6130 Computational Geometry Spring 2017
3. Polygon Triangulation
Computational Geometry
CMPS 3130/6130 Computational Geometry Spring 2017
Algorithm design techniques Dr. M. Gavrilova
CMPS 3130/6130 Computational Geometry Spring 2017
Computational Geometry Capter:1-2.1
CMPS 3130/6130 Computational Geometry Spring 2017
CMPS 3130/6130 Computational Geometry Spring 2017
Presentation transcript:

CMPS 3130/6130 Computational Geometry Spring 2015 Plane Sweep Algorithms II Carola Wenk 1/22/15 CMPS 3130/6130 Computational Geometry

Geometric Intersections Important and basic problem in Computational Geometry Solid modeling: Build shapes by applying set operations (intersection, union). Robotics: Collision detection and avoidance Geographic information systems: Overlay two subdivisions (e.g., road network and river network) Computer graphics: Ray shooting to render scenes 1/22/15 CMPS 3130/6130 Computational Geometry

Line Segment Intersection Input: A set S={s1, …, sn} of (closed) line segments in R2 Output: All intersection points between segments in S 1/22/15 CMPS 3130/6130 Computational Geometry

Line Segment Intersection n line segments can intersect as few as 0 and as many as =O(n2) times Simple algorithm: Try out all pairs of line segments → Takes O(n2) time → Is optimal in worst case Challenge: Develop an output-sensitive algorithm Runtime depends on size k of the output Here: 0  k  c n2 , where c is a constant Our algorithm will have runtime: O( (n+k) log n) Best possible runtime: O(n log n + k) → O(n2) in worst case, but better in general n 2 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Complexity Why is runtime O(n log n + k) optimal? The element uniqueness problem requires W(n log n) time in algebraic decision tree model of computation (Ben-Or ’83) Element uniqueness: Given n real numbers, are all of them distinct? Solve element uniqueness using line segment intersection: Take n numbers, convert into vertical line segments. There is an intersection iff there are duplicate numbers. If we could solve line segment intersection in o(n log n) time, i.e., strictly faster than Θ(n log n), then element uniqueness could be solved faster. Contradiction. 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Plane sweep algorithm Cleanliness property: All intersections to the left of sweep line l have been reported Sweep line status: Store segments that intersect the sweep line l, ordered along the intersection with l . Events: Points in time when sweep line status changes combinatorially (i.e., the order of segments intersecting l changes) → Endpoints of segments (insert in beginning) → Intersection points (compute on the fly during plane sweep) 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry General position Assume that “nasty” special cases don’t happen: No line segment is vertical Two segments intersect in at most one point No three segments intersect in a common point 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Event Queue Need to keep events sorted: Lexicographic order (first by x-coordinate, and if two events have same x-coordinate then by y-coordinate) Need to be able to remove next point, and insert new points in O(log n) time Need to make sure not to process same event twice Use a priority queue (heap), and possibly extract multiples Or, use balanced binary search tree 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Sweep Line Status Store segments that intersect the sweep line l, ordered along the intersection with l . Need to insert, delete, and find adjacent neighbor in O(log n) time Use balanced binary search tree, storing the order in which segments intersect l in leaves b c e d c b e d 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Event Handling Left segment endpoint Add new segment to sweep line status Test adjacent segments on sweep line l for intersection with new segment (see Lemma) Add new intersection points to event queue b c a e d c b d c b e d 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Event Handling 2. Intersection point Report new intersection point Two segments change order along l → Test new adjacent segments for new intersection points (to insert into event queue) b c a e d Note: “new” intersection might have been already detected earlier. c b e d c e b d 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Event Handling 3. Right segment endpoint Delete segment from sweep line status Two segments become adjacent. Check for intersection points (to insert in event queue) b c a e d e c b d e c d 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Intersection Lemma Lemma: Let s, s’ be two non-vertical segments whose interiors intersect in a single point p. Assume there is no third segment passing through p. Then there is an event point to the left of p where s and s’ become adjacent (and hence are tested for intersection). Proof: Consider placement of sweep line infinitesimally left of p. s and s’ are adjacent along sweep line. Hence there must have been a previous event point where s and s’ become adjacent. s’ p s 1/22/15 CMPS 3130/6130 Computational Geometry

CMPS 3130/6130 Computational Geometry Runtime Sweep line status updates: O(log n) Event queue operations: O(log n), as the total number of stored events is  2n + k, and each operation takes time O(log(2n+k)) = O(log n2) = O(log n) There are O(n+k) events. Hence the total runtime is O((n+k) log n) k = O(n2) 1/22/15 CMPS 3130/6130 Computational Geometry