Spaghetti Source logo

多角形の面積

解説

A = 1/2 Σa × b.切捨てが発生しないように両辺を二倍して扱う.

ソースコード

number area2(const polygon& P) {
  number A = 0;
  for (int i = 0; i < P.size(); ++i) 
    A += cross(curr(P, i), next(P, i));
  return A;
}

Verified

前原 貴憲(maehara@prefield.com).

Last Modified: 2007.08.09 21:36:40.