Oblicz obszar wielokąta.
Zainspirowany tym wideo z algorytmem sznurowadła.
Zadanie
Twoim zadaniem jest stworzenie programu lub funkcji, która oblicza pole wielokąta. Program lub funkcja jest zdefiniowana zgodnie z domyślną definicją w meta.
Wejście
Otrzymasz współrzędne X i Y każdego wierzchołka wielokąta. Możesz wziąć dane wejściowe jako listę krotek ( [[x1, y1], [x2, y2], etc]
), macierzy lub płaskiej listy ( [x1, y1, x2, y2, etc]
). Dopuszczalne są również dwie listy zawierające odpowiednio x
i y
współrzędne. Wierzchołki są ponumerowane przeciwnie do ruchu wskazówek zegara, a pierwszy wierzchołek jest taki sam jak ostatni podany wierzchołek, zamykając w ten sposób wielokąt.
Jeśli chcesz, możesz wziąć dane wejściowe bez ostatniego wierzchołka (więc otrzymaj każdą współrzędną tylko raz).
Możesz założyć, że krawędzie wielokątów się nie przecinają. Możesz również założyć, że wszystkie wierzchołki mają współrzędne całkowite.
Wynik
Obszar wielokąta. Wszystkie standardowe metody wyjściowe są dozwolone. Jeśli twój język nie pozwala na dzielenie zmiennoprzecinkowe, a rozwiązaniem nie byłaby liczba całkowita, możesz zwrócić ułamek. Ułamek nie musi być koniecznie uproszczony, więc zwrot 2/4
byłby dozwolony.
Kryterium wygranej
Najkrótszy kod wygrywa!
Przypadki testowe
[[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]
dozwolone?