Lecture 7 - Convex Hulls and Delaunay Triangulation
Scientific Data Visualization - Convex Hulls and Delaunay Triangulation
Overview of Surfaces in R2 and R3
Understanding Convex Hull Algorithms - 2D & 3D Approaches:
Convex Hull Algorithm: A fundamental computational geometry algorithm with a time complexity of O(n²), utilized to find the smallest convex polygon that can enclose a set of points in a plane.
Gift Wrapping (Jarvis March): An efficient algorithm for computing the convex hull with a time complexity of O(n log²n) in worst-case scenarios. It works by wrapping a string around the points and finding the outermost points.
Graham's Scan: To efficiently compute the convex hull, this algorithm operates in O(n) time for sorted points, first sorting the points based on their polar coordinates with respect to a reference point (usually the lowest point).
Quickhull: A divide-and-conquer approach inspired by Quick Sort, Quickhull recursively partitions the dataset by finding farthest points and forming hulls around them.
Output Sensitive Approach: This method's efficiency is contingent on the number of output points produced in relation to the input size, optimizing performance when fewer points form the hull.
Advanced Algorithms: - Kirkpatrick-Seidel Algorithm: A sophisticated sweep-line algorithm that computes the convex hull with optimal O(n logh) time complexity, where h is the number of convex hull vertices.
Chan’s Algorithm: This is a hybrid algorithm combining techniques from both convex hull algorithms and has a time complexity of O(n logh), efficient for large datasets while optimizing for the number of output vertices.
Convex Hull in R2
Key Algorithm: Jarvis March - Initialization:
Start with the leftmost point (p), which serves as the initial vertex of the convex hull.
Select a candidate point (q) to find the next vertex of the hull.
Process:
For each point r in the remaining set, determine the orientation of points (p,q,r) using orientation tests:
Orientation Test:
If the turn from p to q to r is clockwise, then set q=r.
If counterclockwise, keep q and continue checking the next point r.
Add the identified point q to the list of convex hull points and update p to q.
Repeat this process until the algorithm returns to the starting point p, thus completing the convex hull.
Orientation Test
Steps to compute orientation: - Calculate slopes for line segments between points (p1,p2) and (p2,p3).
Determine orientation based on the slopes:
If slope(p1,p2) < slope(p2,p3), it indicates a counterclockwise turn, essential for navigating the hull points correctly; otherwise, it is clockwise.