Площадь многоугольника
Дан многоугольник.
Необходимо найти его площадь.
Вычисляем площадь по следующей формуле:
S = 0.5 * SUM (xi * y(i + 1) mod n - yi * x(i + 1) mod n)
(точки нумеруются от 0 до n - 1).
Так же стоит заметить, что значение площади получается со знаком +/-. Этот знак можно использовать, чтобы узнать, по часовой стрелке заданы точки или нет.
Листинг C++
double area_polygon (vector < point > &p)
{
int i, j;
double s = 0;
for (i = 0; i < p.size(); ++ i)
{
j = (i + 1) % p.size();
s += p[i].x * p[j].y - p[j].x * p[i].y;
}
return 0.5 * s;
}
21.06.2007, 16:53
По всем вопросам обращаться: rumterg@gmail.com