Calcule a área de um polígono.
Inspirado neste vídeo do algoritmo do cadarço.
Tarefa
Seu trabalho é criar um programa ou função que calcule a área de um polígono. Programa ou função é definido de acordo com a definição padrão no meta.
Entrada
Você receberá as coordenadas X e Y de cada vértice do polígono. Você pode considerar a entrada como uma lista de tuplas ( [[x1, y1], [x2, y2], etc]
), uma matriz ou uma lista simples ( [x1, y1, x2, y2, etc]
). Também são permitidas duas listas contendo x
e y
coordenadas, respectivamente. Os vértices são numerados no sentido anti-horário e o primeiro vértice é o mesmo que o último vértice fornecido, fechando o polígono.
Se você quiser, pode pegar a entrada sem o último vértice (então receba cada coordenada apenas uma vez).
Você pode supor que as arestas dos polígonos não se cruzam. Você também pode assumir que todos os vértices têm coordenadas inteiras.
Resultado
A área do polígono. Todos os métodos de saída padrão são permitidos. Se o seu idioma não permitir a divisão de flutuação e a solução não for um número inteiro, você poderá retornar uma fração. A fração não precisa necessariamente ser simplificada, portanto o retorno 2/4
seria permitido.
Critério de vitória
O código mais curto vence!
Casos de teste
[[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]
permitida?