polygons and the convex hull
DESCRIPTION
Polygons and the convex hull. Prof. Graeme Bailey http://cs1114.cs.cornell.edu (notes modified from Noah Snavely, Spring 2009). Finding the lightstick center. Threshold the image Find blobs (connected components) Find the largest blob B Compute the median vector of B. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/1.jpg)
Polygons and the convex hull
Prof. Graeme Bailey
http://cs1114.cs.cornell.edu
(notes modified from Noah Snavely, Spring 2009)
![Page 2: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/2.jpg)
2
Finding the lightstick center
1. Threshold the image2. Find blobs (connected components)3. Find the largest blob B4. Compute the median vector of B
![Page 3: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/3.jpg)
Finding the lightstickBut we also want to control the robot based on the orientation of the lightstickHow can we express the shape of the lightstick? (a box? a polygon?)
3
![Page 4: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/4.jpg)
Bounding box
4
Not as informative as we might like Let’s come up with a polygon that fits
better…
![Page 5: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/5.jpg)
5
Detour: convex polygons
A polygon P is convex if, for any two points A, B inside P, all points on a line connecting A and B are also inside P
A
B Which polygons are
convex?
![Page 6: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/6.jpg)
6
Consider the smallest convex shape (polygon?) containing some object P– Called the CONVEX HULL of P– What is the convex hull of P if P is convex?
Can also define this for sets of points in 2D: the smallest convex shape containing a set of 2D points
Creating Convexity
![Page 7: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/7.jpg)
Convex hull of point sets
We can use this to find a simple description of the lightstick’s shape
http://www.cs.princeton.edu/~ah/alg_anim/version1/ConvexHull.html
How can we compute the convex hull?
7
![Page 8: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/8.jpg)
8
Gift-wrapping algorithm1.Start at lowest point (this is necessarily on the convex hull)2.Rotate the line until we hit another point (ditto)
• All other points will lie on one side of this line
• Look for the point that gives you the largest angle with the current line
3.Repeat4.You’re done when you get back to the starting point
Figure credit: Craig Gotsman
How do we code
this part?
![Page 9: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/9.jpg)
To construct algorithms to compute convex hulls it will help to remind ourselves about vectors.
Vectors
9
length of v :
||v|| = √ vx2 + vy
2
direction of v :
length of v :
||v|| = √ vx2 + vy
2
direction of v :
(vx, vy)
v
(0,0)
![Page 10: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/10.jpg)
Vector arithmetic
10
vu
(0,0)
v - u = (vx - ux, vy - uy)
(0,0)
v + u = (vx + ux, vy + uy)
uv
-u
u
addition
subtraction
![Page 11: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/11.jpg)
Vector lengths and angles Can define a scalar (inner) product of two vectors. Technically, this is anything that
satisfies:1. v.v ≥ 0, and v.v = 0 if and only if v = 02. v.(au) = a(v.u), for a any (real) number3. v.u = u.v4. v.(u+w) = v.u + v.w
1. And then use this to define length and angle via– Length (aka norm) ||v||2 = v.v– Angle θ by v.u = ||v|| ||u|| cos θ
2. In 2D we usually define v.u = vxux + vyuy
11
![Page 12: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/12.jpg)
Gift-wrapping revisited
12
Which point is next?
Answer: the point w that maximizes the angle between u – v and w – v
v
u
u - v
What is the running time of this algorithm?
w
![Page 13: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/13.jpg)
Other convex hull algorithms
13
1. Connect the leftmost and rightmost points (since both must be on the convex hull).
2. Recursively … find the furthest point to the left (right) of this line and form a triangle.
What is the running time of this algorithm?
![Page 14: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/14.jpg)
Other convex hull algorithms
14
1. Start with the lowest point, and sort the points by decreasing angle to the horizontal
2. Create a polygon by joining the points in that order
3. Trace this polygon, deleting edges requiring a clockwise angle
What is the running time of this algorithm?
P
![Page 15: Polygons and the convex hull](https://reader036.vdocument.in/reader036/viewer/2022062301/56815177550346895dbfb057/html5/thumbnails/15.jpg)
Lightstick orientation
We have a convex shape – Now what?
Want to find which way it’s pointed
For now, we’ll find the two points that are furthest away from each other, and call that the “major axis”
15