convex hull1 obstacle start end. convex hull2 outline and reading convex hull (§12.5.2) orientation...
TRANSCRIPT
![Page 1: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/1.jpg)
Convex Hull 1
Convex Hull
obstacle
startend
![Page 2: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/2.jpg)
Convex Hull 2
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)
![Page 3: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/3.jpg)
Convex Hull 3
Convex PolygonA convex polygon is a nonintersecting polygon whose internal angles are all convex (i.e., less than )In a convex polygon, a segment joining two vertices of the polygon lies entirely inside the polygon
convex nonconvex
![Page 4: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/4.jpg)
Convex Hull 4
Convex HullThe convex hull of a set of points is the smallest convex polygon containing the pointsThink of a rubber band snapping around the points
![Page 5: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/5.jpg)
Convex Hull 5
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
![Page 6: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/6.jpg)
Convex Hull 6
ApplicationsMotion planning
Find an optimal route that avoids obstacles for a robot
Geometric algorithms Convex hull is like a two-dimensional sorting
obstacle
startend
![Page 7: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/7.jpg)
Convex Hull 7
Computing the Convex Hull
The following method computes the convex hull of a set of pointsPhase 1: Find the lowest point (anchor point)Phase 2: Form a nonintersecting polygon by sorting the points
counterclockwise around the anchor pointPhase 3: While the polygon has a nonconvex vertex, remove it
![Page 8: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/8.jpg)
Convex Hull 8
OrientationThe orientation of three points in the plane is clockwise, counterclockwise, or collinearorientation(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 (a, b, c), whose absolute value is twice the area of the triangle with vertices a, b and c
a
b
c
a
c
b
c
ba
CW
CCW
COLL
1
1
1
),,(
cc
bb
aa
yx
yx
yx
cba
![Page 9: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/9.jpg)
Convex Hull 9
Sorting by AngleComputing angles from coordinates is complex and leads to numerical inaccuracyWe 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
a
bc
CCW
a
cb
CW
a
bc
COLL
![Page 10: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/10.jpg)
Convex Hull 10
Removing Nonconvex Vertices
Testing whether a vertex is convex can be done using the orientation functionLet 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
pq
r
qr
p
![Page 11: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/11.jpg)
Convex Hull 11
Graham ScanThe 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 polygonLet q and p be the last and second
last vertex of H
while orientation(p, q, r) CW or COLLremove q from Hq pp vertex preceding p in H
Add r to the end of H
p
q
r
H
pqr
H
p
qr
H
![Page 12: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/12.jpg)
Convex Hull 12
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
![Page 13: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/13.jpg)
Convex Hull 13
Incremental Convex Hullq
w uez t
![Page 14: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/14.jpg)
Convex Hull 14
Outline and Reading
Point location Problem Data structure
Incremental convex hull Problem Data structure Insertion algorithm Analysis
![Page 15: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/15.jpg)
Convex Hull 15
Point LocationGiven 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 PAn 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
TH
TL
![Page 16: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/16.jpg)
Convex Hull 16
Point Location (cont.)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
P
TH
TL
q
eH
vL
![Page 17: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/17.jpg)
Convex Hull 17
Incremental Convex HullThe 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
![Page 18: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/18.jpg)
Convex Hull 18
Insertion of a PointIn operation insert(q), we consider four cases that depend on the location of point qA IN or ON: no changeB OUT and above: add
q to the upper hullC OUT and below: add
q to the lower hullD OUT and left or
right: add q to the lower and upper hull
A
C
D
![Page 19: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/19.jpg)
Convex Hull 19
Insertion of a Point (cont.)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 z left neighbor of w
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 t right neighbor of u
We add vertex q
q
w uez t
q
w
uz t
![Page 20: Convex Hull1 obstacle start end. Convex Hull2 Outline and Reading Convex hull (§12.5.2) Orientation (§12.5.1-2) Sorting by angle (§12.5.5) Graham scan](https://reader035.vdocuments.net/reader035/viewer/2022072005/56649cce5503460f9499a05c/html5/thumbnails/20.jpg)
Convex Hull 20
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)