Computational Geometry – Voronoi Diagram COMPUTATIONAL GEOMETRY -- VORONOI DIAGRAM Sophie Che.
Computational Geometry
-
Upload
holmes-vang -
Category
Documents
-
view
60 -
download
3
description
Transcript of Computational Geometry
![Page 1: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/1.jpg)
Computational Geometry
Piyush Kumar(Lecture 3: Convexity and Convex hulls)
Welcome to CIS5930
![Page 2: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/2.jpg)
Convexity
A set S is convex if for any pair of points p,q S we have pq S.
p
q
non-convex
q
p
convex
![Page 3: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/3.jpg)
Convex Hulls : Equivalent definitions
The intersection of all covex sets that contains P The intersection of all halfspaces that contains P. The union of all triangles determined by points in P. All convex combinations of points in P.
P here is a set of input points
![Page 4: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/4.jpg)
Convex Hulls
Applications Collision Detection Fitting shapes Shape Approximation NN-Searching Useful as a preprocessing step to many
other algorithms in computational geometry. The most ubiquitous structure in computational
geometry.
![Page 5: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/5.jpg)
Convex hulls
p0
p1p2
p4
p5
p6
p7
p8
p9
p11
p12
Extreme pointInt angle < pi
Extreme edgeSupports the point set
![Page 6: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/6.jpg)
Convex hull : Representation
We will represent the convex hull by an enumeration of the vertices of the CH(P) in counterclockwise order. Naïve Algorithm to compute convex hulls can be implemented in O(n3) in the plane (How?) Anyone with an O(n2) algorithm?
![Page 7: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/7.jpg)
Convex hull
has a lower bound equivalent to sorting has many similar algorithms to sorting. We will see today Graham Scan Incremental (one point at a time) D&C Qhull ( similar to Quick Sort) Jarvis March Chan’s Algorithm
![Page 8: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/8.jpg)
Assignments for next week
Notes of Dr. Mount: Upto Page 20D&C notesAssignment2.cpp and ch_2.cpp Will talk more about it towards the
end of class.
![Page 9: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/9.jpg)
Today (Jan 24th)
Chan’s Algorithm Line Segment intersection Homeworks / Projects
![Page 10: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/10.jpg)
Line Segment Intersection
Applications VLSI (Intel uses it a lot) Map Overlay Clipping in Graphics CSG
Problem : Given a set of line segments in the plane, compute all the intersection point.
![Page 11: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/11.jpg)
Line Segment Intersection
Lower Bound from EUEU : Given a list of n numbers, are all these numbers unique? [Y / N]? Lower bound is Ω(nlogn) How do we use this fact to prove a Ω(nlogn)
on Line segment intersection problem? Does this imply a lower bound of Ω(nlogn+k)?
Tell me a naïve algorithm to solve this problem.
![Page 12: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/12.jpg)
Line Segment intersection
Naïve O(n^2) Bentley Ottman O((n+k)log n)Edelsbrunner Chazeele 92 O(nlogn +k) : Supercomplicated O(nlogn) space
Clarkson and Shor O(nlogn +k) Randmized O(n) space
Balaban : Deterministic O(nlogn + k) in O(n space. Solved a long open problem.
![Page 13: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/13.jpg)
Segment Intersection
How do we intersect two segments? How do we implement such a primitive? CG FAQ 1.3 Any special cases?
![Page 14: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/14.jpg)
Today ( Jan 26th)
Line Segment intersection Algorithm Project discussion Polygons
![Page 15: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/15.jpg)
Line Segment intersection
Sweep line paradigm Main idea is to sweep the entire
plane with a line and compute what we want to , as we sweep past the input.
Event scheduling and updates Carefully schedule the computation
so that it does not take too much time to compute the output.
![Page 16: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/16.jpg)
Line Segment Intersection
A Sorted sequence data structure Insert Delete Successor/Predecessor All in O(log n)
X-structure (or the event queue) Y-structure (or the sweep line)
![Page 17: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/17.jpg)
Plane Sweep ParadigmInitialization: Add all segment endpoints to the X-structure or event queue
(O(n log n)). Sweep line status is empty.
Algorithm proceeds by inserting and deleting discrete events from the queue until it is empty.
![Page 18: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/18.jpg)
Useful lemma
Given s1,s2 intersecting in p, there is a placement of the sweepline prior to this event such that s1,s2 are adjacent along the sweepline. Just before an intersection occurs, the two relevant segments are adjacent to each other in the sweep line status.
![Page 19: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/19.jpg)
Plane Sweep
Event A: Segment left endpoint Insert segment in sweep line or
the Y-structure. Test for intersection to the right of
the sweep line with the segments immediately above and below it. Insert intersection points (if found) into X-structure or event queue.
Complexity: ? Worst case?
![Page 20: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/20.jpg)
Plane Sweep – Algorithm
Event B: Segment right endpoint Delete segment from
sweep line status. Test for intersection to
the right of the sweep line between the segments immediately above and below. (can you do any optimization for this case? ) Insert point (if found) into event queue.
Complexity: ?
![Page 21: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/21.jpg)
Plane Sweep – AlgorithmEvent C: Intersection point Report the point. Swap the two line relevant
segments in the sweep line status.
For the new upper segment – test it against its predecessor for an intersection. Insert point (if found) into event queue.
Similar for new lower segment (with successor).
Complexity: O(klogn)
![Page 22: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/22.jpg)
The Simplified Algorithm
Construct the X-structure scan thru the X-structure (or the event queue) from left to right processing: Segment Left endpoint Segment right endpoint Intersection points
![Page 23: Computational Geometry](https://reader033.fdocuments.in/reader033/viewer/2022061600/56813510550346895d9c66ad/html5/thumbnails/23.jpg)
Polygons
Definition of a simple polygon Point containment in simple polygon Area of a simple polygon Triangulation of a simple polygon Convex hull of a simple polygon Fast preprocessing of a convex polygon to do in/out queries.