Известная из школьной программы формула Герона вычисляет площадь треугольника по длинам сторон треугольника (L1, L2, L3).
S=
где P=(L1+L2+L3)/2- полупериметр треугольника.
В задачах, где треугольник задан координатами вершин, проще использовать формулу ориентированной площади треугольника[5].
Пусть вершины треугольника имеют коодинаты (x1, y1), (x2, y2) и (x3, y3). Ориентированная площадь равна площади треугольника, но имеет знак. Знак площади зависит от порядка обхода вершин, при обходе против часовой стрелки знак положительный, по часовой отрицательный.
Ориентированная площадь треугольника – это его обычная площадь, только со знаком. Знак у ориентированной площади треугольника ABC такой же, как у ориентированного угла между векторами и , то есть ее знак зависит от порядка перечисления вершин. На рис.4 треугольник ABC прямоугольный. Его ориентированная площадь равна ( * )/2. Эту же величину можно вычислить другим способом. Площадь треугольника ABC получится, если из площади треугольника OBC вычесть площади треугольников OAB и OCA. Таким образом, нужно просто сложить ориентированные площади треугольников OAB, OBC и OCA.
Аналогично можно вычислить площадь любого многоугольника, не обязательно выпуклого. Нужно просто сложить ориентированные площади треугольников, одна вершина которых - (0, 0), а две другие - соседние вершины многоугольника. Ориентированная площадь параллелограмма построенного на векторах a=(X1, Y1) и b=(X2, Y2) равна 2S=X1*Y2-X2*Y1, где S ориентированная площадь треугольника.
Запишем программу для вычисления площади по предложенному алгоритму. Рекомендуем использовать ее и для вычисления площадей треугольников, хотя для трех вершин можно получить формулу и не использовать циклическую программу.
В программе координаты вершин нужно вводить последовательно, обходя многоугольник по (или против) часовой стрелке.