public static List<VoronoiPoint> getConvexHull(int[] xs, int[] ys) throws IllegalArgumentException {

        if(xs.length != ys.length) {
            throw new IllegalArgumentException("xs and ys don't have the same size");
        }

        List<VoronoiPoint> points = new ArrayList<>();

        for(int i = 0; i < xs.length; i++) {
            points.add(new VoronoiPoint(xs[i], ys[i]));
        }

        return getConvexHull(points);
    }
Returns the convex hull of the points created from <code>xs</code>
and <code>ys</code>. Note that the first and last point in the returned
VoronoiPoint are the same point.

@param xs the x coordinates.
@param ys the y coordinates.
@return   the convex hull of the points created from <code>xs</code>
          and <code>ys</code>.
@throws IllegalArgumentException if <code>xs</code> and <code>ys</code>
                                 don't have the same size, if all points
                                 are collinear or if there are less than
                                 3 unique points present.
vorolay/src/main/java/quatja/com/vorolay/GrahamScan.java