Convex Hull obstacle start end Convex Hull Convex Hull

Slides:



Advertisements
Similar presentations
Introduction to Algorithms
Advertisements

Two Segments Intersect?
Geometry Introduction
Polygon Triangulation
Computational Geometry
2/9/06CS 3343 Analysis of Algorithms1 Convex Hull  Given a set of pins on a pinboard  And a rubber band around them  How does the rubber band look when.
1/13/15CMPS 3130/6130: Computational Geometry1 CMPS 3130/6130: Computational Geometry Spring 2015 Convex Hulls Carola Wenk.
algorithms and data structures
Brute-Force Triangulation
Computing Convex Hulls CLRS 33.3
CS16: Introduction to Data Structures & Algorithms
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis ) Graham scan Divide and conquer Convex Hull for line intersections.
Introduction to Algorithms Rabie A. Ramadan rabieramadan.org 6 Ack : Carola Wenk nad Dr. Thomas Ottmann tutorials.
Classes of Polygons Planar polygons Non-planar polygons Simple
Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R.
Computational Geometry
8/29/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Spring 2006 Convex Hulls Carola Wenk.
Computational Geometry for the Tablet PC
1 Today’s Material Computational Geometry Problems –Closest Pair Problem –Convex Hull Jarvis’s March, Graham’s scan –Farthest Point Problem.
5/17/2015 1:32 AMConvex Hull1 obstacle start end.
What does that mean? To get the taste we will just look only at some sample problems... [Adapted from S.Suri]
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 -- Voronoi Diagram
6/2/ :35 AMIncremental Convex Hull1 q w u e zt.
Algorithm 1. (Convex Hull) - Pseudo code - Input. A set of points in the plane. Output. A list containing the vertices of Conv ( P). 1. Sort the points.
Voronoi Diagrams.
1 Computational Geometry Chapter Motivation Range Trees e.g. Database Database Record 1.Suppose you want to know all employees with Salary ∈ [40K,
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 2 Chapter 2: Polygon Partitioning.
Brute-Force Triangulation
Geometric Algorithms1 segment intersection orientation point inclusion simple closed path.
Advanced Algorithm Design and Analysis (Lecture 9) SW5 fall 2004 Simonas Šaltenis E1-215b
CSE53111 Computational Geometry TOPICS q Preliminaries q Point in a Polygon q Polygon Construction q Convex Hulls Further Reading.
1 Geometric Intersection Determining if there are intersections between graphical objects Finding all intersecting pairs Brute Force Algorithm Plane Sweep.
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.
Triangulating a monotone polygon
Convex Hull. What is the Convex Hull? Imagine a set of points on a board with a nail hammered into each point. Now stretch a rubber band over all the.
UNC Chapel Hill M. C. Lin Line Segment Intersection Chapter 2 of the Textbook Driving Applications –Map overlap problems –3D Polyhedral Morphing.
Fundamental Data Structures and Algorithms Klaus Sutner April 27, 2004 Computational Geometry.
Fundamental Data Structures and Algorithms Margaret Reid-Miller 27 April 2004 Computational Geometry.
CMPS 3120: Computational Geometry Spring 2013
Computer Graphics Filling. Filling Polygons So we can figure out how to draw lines and circles How do we go about drawing polygons? We use an incremental.
A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R. Otherwise, it is called concave.
COMPUTATIONAL GEOMETRY AND MATRIX MULTIPLICATION Mohammed Zeeshan Farooqui Minhaj Uddin.
Convex Hull 2012/10/23. Convex vs. Concave A polygon P is convex if for every pair of points x and y in P, the line xy is also in P; otherwise, it is.
CLASSIFYING POLYGONS UNIT 1 LESSON 6. Classifying Polygons In geometry, a figure that lies in a plane is called a plane figure. A polygon is a closed.
Convex Sets & Concave Sets A planar region R is called convex if and only if for any pair of points p, q in R, the line segment pq lies completely in R.
Convex Hulls Guo Qi, Chen Zhenghai, Wang Guanhua, Shen Shiqi, Himeshi De Silva.
Polygon Triangulation
UNC Chapel Hill M. C. Lin Geometric Data Structures Reading: Chapter 10 of the Textbook Driving Applications –Windowing Queries Related Application –Query.
Computer Graphics Filling.
Convex Hull.
Algorithm design techniques Dr. M. Gavrilova
Convex Hull obstacle start end 11/21/2018 4:05 AM Convex Hull
Computational Geometry Capter:1-2.1
Geometry.
Convex Sets & Concave Sets
Computational Geometry for the Tablet PC
I. The Problem of Molding
Convex Hull 1/1/ :28 AM Convex Hull obstacle start end.
Prof. Harriet Fell Fall 2011 Lecture 9 – September 26, 2011
CHAPTER 33 Computational Geometry
CMPS 3130/6130: Computational Geometry Spring 2017
Rasterizing Polygons Lecture 29 Wed, Dec 7, 2005.
Convex Hull obstacle start end 4/30/2019 5:21 PM Convex Hull
Computational Geometry Algorithms
Geometry.
Algorithms and Data Structures Lecture XIV
Computational Geometry
Presentation transcript:

Convex Hull obstacle start end Convex Hull Convex Hull 4/15/2017 4:51 AM Convex Hull obstacle start end Convex Hull

Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) 4/15/2017 4:51 AM Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan (§12.5.5) Analysis (§12.5.5) Convex Hull

Convex Hull 4/15/2017 4:51 AM Convex Polygon A convex polygon is a nonintersecting polygon whose internal angles are all convex (i.e., less than p) In a convex polygon, a segment joining two vertices of the polygon lies entirely inside the polygon convex nonconvex Convex Hull

Convex Hull 4/15/2017 4:51 AM Convex Hull The convex hull of a set of points is the smallest convex polygon containing the points Think of a rubber band snapping around the points Convex Hull

Special Cases The convex hull is a segment The convex hull is a point 4/15/2017 4:51 AM Special Cases The convex hull is a segment Two points All the points are collinear The convex hull is a point there is one point All the points are coincident Convex Hull

Applications Motion planning Geometric algorithms obstacle start end Convex Hull 4/15/2017 4:51 AM Applications Motion planning Find an optimal route that avoids obstacles for a robot Geometric algorithms Convex hull is like a two-dimensional sorting obstacle start end Convex Hull

Computing the Convex Hull 4/15/2017 4:51 AM Computing the Convex Hull The following method computes the convex hull of a set of points Phase 1: Find the lowest point (anchor point) Phase 2: Form a nonintersecting polygon by sorting the points counterclockwise around the anchor point Phase 3: While the polygon has a nonconvex vertex, remove it Convex Hull

Orientation b c CW a c b CCW a c b COLL a Convex Hull 4/15/2017 4:51 AM Orientation The orientation of three points in the plane is clockwise, counterclockwise, or collinear orientation(a, b, c) clockwise (CW, right turn) counterclockwise (CCW, left turn) collinear (COLL, no turn) The orientation of three points is characterized by the sign of the determinant D(a, b, c), whose absolute value is twice the area of the triangle with vertices a, b and c a b c CW c b CCW a c b a COLL Convex Hull

Convex Hull 4/15/2017 4:51 AM Sorting by Angle Computing angles from coordinates is complex and leads to numerical inaccuracy We can sort a set of points by angle with respect to the anchor point a using a comparator based on the orientation function b < c  orientation(a, b, c) = CCW b = c  orientation(a, b, c) = COLL b > c  orientation(a, b, c) = CW CCW COLL CW c c b b b c a a a Convex Hull

Removing Nonconvex Vertices Convex Hull 4/15/2017 4:51 AM Removing Nonconvex Vertices Testing whether a vertex is convex can be done using the orientation function Let p, q and r be three consecutive vertices of a polygon, in counterclockwise order q convex  orientation(p, q, r) = CCW q nonconvex  orientation(p, q, r) = CW or COLL r r q q p p Convex Hull

Graham Scan p q r H p q r H p q r H for each vertex r of the polygon Convex Hull 4/15/2017 4:51 AM Graham Scan The Graham scan is a systematic procedure for removing nonconvex vertices from a polygon The polygon is traversed counterclockwise and a sequence H of vertices is maintained for each vertex r of the polygon Let q and p be the last and second last vertex of H while orientation(p, q, r) = CW or COLL remove q from H q  p p  vertex preceding p in H Add r to the end of H p q r H p q r H p q r H Convex Hull

Convex Hull 4/15/2017 4:51 AM Analysis Computing the convex hull of a set of points takes O(n log n) time Finding the anchor point takes O(n) time Sorting the points counterclockwise around the anchor point takes O(n log n) time Use the orientation comparator and any sorting algorithm that runs in O(n log n) time (e.g., heap-sort or merge-sort) The Graham scan takes O(n) time Each point is inserted once in sequence H Each vertex is removed at most once from sequence H Convex Hull

Incremental Convex Hull 4/15/2017 4:51 AM Incremental Convex Hull q w u e z t Convex Hull

Outline and Reading Point location Incremental convex hull Problem 4/15/2017 4:51 AM Outline and Reading Point location Problem Data structure Incremental convex hull Insertion algorithm Analysis Convex Hull

Convex Hull 4/15/2017 4:51 AM Point Location TH Given a convex polygon P, a point location query locate(q) determines whether a query point q is inside (IN), outside (OUT), or on the boundary (ON) of P An efficient data structure for point location stores the top and bottom chains of P in two binary search trees, TL and TH of logarithmic height An internal node stores a pair (x (v), v) where v is a vertex and x (v) is its x-coordinate An external node represents an edge or an empty half-plane P TL Convex Hull

Point Location (cont.) TH eH P q vL TL Convex Hull 4/15/2017 4:51 AM Point Location (cont.) TH To perform locate(q), we search for x(q) in TL and TH to find Edge eL or vertex vL on the lower chain of P whose horizontal span includes x(q) Edge eH or vertex vH on the upper chain of P whose horizontal span includes x(q) We consider four cases If no such edges/vertices exist, we return OUT Else if q is on eL (vL) or on eH (vH), we return ON Else if q is above eL (vL) and below eH (vH), we return IN Else, we return OUT eH P q vL TL Convex Hull

Incremental Convex Hull 4/15/2017 4:51 AM Incremental Convex Hull The incremental convex hull problem consists of performing a series of the following operations on a set S of points locate(q): determines if query point q is inside, outside or on the convex hull of S insert(q): inserts a new point q into S hull(): returns the convex hull of S Incremental convex hull data structure We store the points of the convex hull and discard the other points We store the hull points in two red-black trees TL for the lower hull TH for the upper hull Convex Hull

Convex Hull 4/15/2017 4:51 AM Insertion of a Point In operation insert(q), we consider four cases that depend on the location of point q A IN or ON: no change B OUT and above: add q to the upper hull C OUT and below: add q to the lower hull D OUT and left or right: add q to the lower and upper hull A C D Convex Hull

Insertion of a Point (cont.) Convex Hull 4/15/2017 4:51 AM Insertion of a Point (cont.) q Algorithm to add a vertex q to the upper hull chain in Case B (boundary conditions omitted for simplicity) We find the edge e (vertex v) whose horizontal span includes q w  left endpoint (neighbor) of e (v) z  left neighbor of w While orientation(q, w, z) = CW or COLL We remove vertex w w  z u  right endpoint (neighbor) of e (v) t  right neighbor of u While orientation(t, u, q) = CW or COLL We remove vertex u u  t We add vertex q w e u z t q w u z t Convex Hull

Analysis Let n be the current size of the convex hull 4/15/2017 4:51 AM Analysis Let n be the current size of the convex hull Operation locate takes O(log n) time Operation insert takes O((1 + k)log n) time, where k is the number of vertices removed Operation hull takes O(n) time The amortized running time of operation insert is O(log n) Convex Hull