Вычисление площади выпуклого многоугольника по координатам вершин на плоскости

Вычисление площади выпуклого многоугольника по координатам вершин. Выпуклый многоугольник строится по точкам с использованием алгоритма Джарвиса

Эта страница существует благодаря следующим персонам

Timur

Timur

Создан: 2017-12-06 16:31:14, Последнее изменение: 2020-11-03 14:19:34
Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/7652/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

Калькулятор ниже был написан для решения частной задачи расчета площади выпуклого четырехугольника по координатам его вершин. Он только обобщает эту задачу до задачи расчета площади любого выпуклого многоугольника вообще. Собственно, на сайте уже был подобный калькулятор Площадь многоугольника, но там требовалось вводить длины сторон и диагоналей, а это несколько труднее, чем вводить только координаты вершин.

Принцип работы остается таким же - многоугольник разбивается на непересекающиеся треугольники, подсчитывается площадь всех треугольников (это легко сделать зная длины всех трех сторон - Расчет площади треугольника по формуле Герона), затем площади суммируются. Основная проблема была в том, чтобы сделать его устойчивым к ситуации, когда точки вводят не по порядку. Предположим, сначала вводят первые четыре точки получая фигуру на рисунке ниже

Четырехугольник
Четырехугольник

При добавлении следующей точки, например, так, как на следующем рисунке

Пятиугольник
Пятиугольник



должен уже получиться многоугольник ADCBE, а не ABCDE, разбитый на треугольники ADC, ACB и ABE, соответственно.

Чтобы получить правильный многоугольник, фактически требуется получить оболочку введенных точек. Для этого калькулятор использует алгоритм Джарвиса (или алгоритм обхода Джарвиса, или алгоритм заворачивания подарка), который определяет последовательность элементов множества, образующих выпуклую оболочку для этого множества. Метод можно представить как обтягивание верёвкой множества вбитых в доску гвоздей.

Алгоритм работает за время O(nh), где n — общее число точек на плоскости, h — число точек в выпуклой оболочке. Для выпуклого многоугольник соответственно будет O(n^2). Не самый оптимальный алгоритм, зато очень простой, и для этого калькулятора вполне производительный.

Как пользоваться калькулятором: начинаете вводить координаты точек выпуклого многоугольника. Начиная с трех точек алгоритм Джарвиса будет стоить обтягивающий контур, затем контур будет разбиваться треугольники и подсчитываться общая площадь. Для справки также будут выводиться площади всех треугольников.

PLANETCALC, Вычисление площади выпуклого многоугольника по координатам вершин на плоскости

Вычисление площади выпуклого многоугольника по координатам вершин на плоскости

Точки многоугольника

ТочкаXY
Записей:

Знаков после запятой: 2
Выпуклый многоугольник
 
Общая площадь
 
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.

Ссылка скопирована в буфер обмена
PLANETCALC, Вычисление площади выпуклого многоугольника по координатам вершин на плоскости

Комментарии