Площадь многоугольника с использованием C ++?

Как я могу рассчитать площадь из многоугольник в с ++ только зная координаты х и у точек, которые составляют многоугольник?

-4

Решение

Простой поиск в Google показывает ответ при условии, что вы имеете дело с несамопересекающимися полигонами. Знак области является положительным, если точки на многоугольнике расположены в направлении против часовой стрелки. Эта формула не предполагает, что многоугольник является выпуклым.

http://mathworld.wolfram.com/PolygonArea.html

Здесь площадь определяется путем суммирования определителя соседних точек. Каждый определитель вычисляет площадь параллелограмма, образованного вектором, например, (x1, y1) и (x2, y2) (где оба вектора происходят от источника (0,0)). Деление на 2 дает площадь треугольника. При перемещении вокруг многоугольника треугольники будут иметь положительную площадь, если ваш многоугольник выпуклый. В противном случае отрицательные области этих треугольников будут отменены с их положительными аналогами для случая вогнутого многоугольника, дающего вам правильный результат.

2

Другие решения

Простой поиск в Википедии показывает ответ:

http://en.wikipedia.org/wiki/Polygon#Area_and_centroid

0