Рассчитайте площадь многоугольника.
Вдохновленный этим алгоритмом шнурка видео.
задача
Ваша задача - создать программу или функцию, которая вычисляет площадь многоугольника. Программа или функция определяется в соответствии с определением по умолчанию в meta.
вход
Вы получите координаты X и Y каждой вершины многоугольника. Вы можете принять входные данные в виде списка кортежей ( [[x1, y1], [x2, y2], etc]
), матрицы или плоского списка ( [x1, y1, x2, y2, etc]
). Также допустимы два списка, содержащие x
и y
координаты соответственно. Вершины нумеруются против часовой стрелки, и первая вершина совпадает с последней предоставленной вершиной, таким образом закрывая многоугольник.
Если вы хотите, вы можете взять ввод без последней вершины (поэтому получите каждую координату только один раз).
Вы можете предположить, что ребра многоугольников не пересекаются. Вы также можете предположить, что все вершины имеют целочисленные координаты.
Выход
Площадь многоугольника. Все стандартные методы вывода разрешены. Если ваш язык не допускает деление с плавающей запятой и решение не будет целочисленным, вы можете вернуть дробь. Дробь не обязательно должна быть упрощена, поэтому возврат 2/4
будет разрешен.
Критерий победы
Самый короткий код выигрывает!
Контрольные примеры
[[4,4],[0,1],[-2,5],[-6,0],[-1,-4],[5,-2],[4,4]]
55
[[1,1],[0,1],[1,0],[1,1]]
0.5
1/2
[x1, x2, x3], [y1, y2, y3]
Разрешен ли ввод как ?