Вычисление площади сложного (самопересекающегося) многоугольника - PullRequest
1 голос
/ 23 декабря 2011

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

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

После многих поисков лучшее, что я нашел, это http://sigbjorn.vik.name/projects/Triangulation.pdf,, но мне нужно что-то более простое для реализации в Processing.js.

1 Ответ

0 голосов
/ 31 декабря 2011

Сначала отрежьте отрезки, где они пересекаются.Если входной набор небольшой, вы можете просто проверить каждую пару.В противном случае используйте R-Tree.Затем вычислите ограниченную (Делоне) триангуляцию.Затем определите внутренние треугольники с помощью лучей и суммируйте их площади.

hth

...