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.