Площадь многоугольника


Дан многоугольник.
Необходимо найти его площадь.

    Вычисляем площадь по следующей формуле:

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