多角形の面積とシューレースの公式

多角形の頂点の座標がわかっていれば、面積は頂点を一周たどるだけで計算できます1A(0,0)A(0, 0)B(4,0)B(4, 0)C(5,3)C(5, 3)D(2,5)D(2, 5)E(1,2)E(-1, 2) を頂点とする五角形で求めます。

シューレースの公式

頂点を反時計回りに (x1,y1),,(xn,yn)(x_1, y_1), \ldots, (x_n, y_n) と並べ、隣り合う 22 点ごとに xiyi+1xi+1yix_i y_{i+1} - x_{i+1} y_i を作って足します。最後の頂点の次は、最初の頂点に戻ります。

S=12i=1n(xiyi+1xi+1yi)S = \frac{1}{2} \left| \sum_{i=1}^{n} (x_i y_{i+1} - x_{i+1} y_i) \right|

順に計算する

xiyi+1xi+1yix_i y_{i+1} - x_{i+1} y_i
ABAB00400 \cdot 0 - 4 \cdot 000
BCBC43504 \cdot 3 - 5 \cdot 01212
CDCD55235 \cdot 5 - 2 \cdot 31919
DEDE22(1)52 \cdot 2 - (-1) \cdot 599
EAEA(1)002(-1) \cdot 0 - 0 \cdot 200

合計は 4040 なので、面積は 12×40=20\dfrac{1}{2} \times 40 = 20 です。

式の意味

式の意味は三角形の面積からたどれます。原点と 22(p,q)(p, q)(r,s)(r, s) が作る三角形の面積は 12psqr\dfrac{1}{2}|ps - qr| でした。原点から各辺を見て三角形に切り分け、符号つきで足すと、多角形の外にはみ出したぶんは負の三角形として打ち消され、多角形そのものの面積が残ります。

対角線で切っても確かめられる

三角形面積
ABC\triangle ABC66
ACD\triangle ACD192\dfrac{19}{2}
ADE\triangle ADE92\dfrac{9}{2}
合計2020

一致します。

使うときの注意

  • 頂点は必ず一周する順に並べる(並べ替えると別の図形になる)
  • 辺が自分自身と交わらないこと(自己交差すると面積が打ち消し合う)
  • 凸でなくてもかまわない

符号の意味

絶対値を外した値の符号は向きを表し、反時計回りなら正、時計回りなら負です。この符号は、多角形の裏表をコンピュータで判定するのにも使われます。

グラフの 55 本の直線が 55 辺、大きな点が 55 頂点です。

  1. Shoelace formula、Wikipedia