概要

多角形の面積を計算する。

多角形の面積を求める公式が存在し、\(N\)個の点\(\mathbf{p_i} = (x_i, y_i)\)から成る多角形の面積\(S\)は以下の式で計算できる。

\(\displaystyle S = \frac{1}{2} \left| \sum_{k=1}^n \mathbf{p_k} \times \mathbf{p_{k+1}} \right| = \frac{1}{2} \left| \sum_{k=1}^n x_k y_{k+1} - x_{k+1} y_k \right|\)

ただし \(\mathbf{p_{n+1}} = \mathbf{p_1}\)

実装

AOJ: "CGL_3_A: Polygon - Area"で提出した実装のPython3版

n = int(input())
p = [list(map(int, input().split())) for i in range(n)]
print(abs(sum(p[i][0]*p[i-1][1] - p[i][1]*p[i-1][0] for i in range(n))) / 2.)

Verified

  • AOJ: "CGL_3_A: Polygon - Area": source (Python2, 0.01sec)

参考ページ