Module org.dyn4j

Class GrahamScan

  • All Implemented Interfaces:
    HullGenerator

    public class GrahamScan
    extends AbstractHullGenerator
    implements HullGenerator
    Implementation of the Graham Scan convex hull algorithm.

    This algorithm handles coincident and colinear points by ignoring them during processing. This ensures the produced hull will not have coincident or colinear vertices.

    This algorithm is O(n log n) where n is the number of input points.

    Since:
    2.2.0
    Version:
    4.2.0
    Author:
    William Bittle
    • Constructor Detail

      • GrahamScan

        public GrahamScan()
    • Method Detail

      • generate

        public Vector2[] generate​(Vector2... points)
        Description copied from interface: HullGenerator
        Returns a convex hull generated from the given point set in counter-clockwise point order.

        Returns null if the given points array is null.

        Returns the array unchanged if the length is less than or equal to 2.

        Specified by:
        generate in interface HullGenerator
        Parameters:
        points - the point set or cloud
        Returns:
        Vector2[] the convex hull vertices