Код: Выделить всё
public static double calculatePolygonArea(ArrayList
points) {
if (points.size() < 3) {
return 0;
}
if (points.size() == 3) {
return calculateTriangleArea(points.get(0), points.get(1), points.get(2));
}
return calculateTriangleArea(points.get(0), points.get(1), points.get(2)) +
calculatePolygonArea(new ArrayList(points.subList(1, points.size())));
}
private static double calculateTriangleArea(Point p1, Point p2, Point p3) {
return Math.abs((p1.getX() * p2.getY() + p2.getX() * p3.getY() + p3.getX() * p1.getY()
- p1.getY() * p2.getX() - p2.getY() * p3.getX() - p3.getY() * p1.getX()) / 2.0);
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... -a-polygon