@Override public void computeArea(ConvexHull convexHull) { GeometricPoint[] closedPolygonFromHull = getClosedPolygonFromHull(convexHull); // init area to zero double area = 0; // sum up the cross products around each vertex of the hull for (int i = 0; i < closedPolygonFromHull.length - 1; i++) { double xUp = closedPolygonFromHull[i].getX(); double yDown = closedPolygonFromHull[i + 1].getY(); double yUp = closedPolygonFromHull[i].getY(); double xDown = closedPolygonFromHull[i + 1].getX(); area += (xUp * yDown) - (yUp * xDown); } convexHull.setArea(area / 2); }