Интернет магазин китайских планшетных компьютеров



Компьютеры - Задача о принадлежности точки многоугольнику - Метод суммирования углов

22 января 2011


Оглавление:
1. Задача о принадлежности точки многоугольнику
2. Метод суммирования углов
3. Алгоритмы c предобработкой



Можно определить, что точка P находится внутри многоугольника c вершинами V0, V1, ..., Vn = V0, вычислив сумму:

\sum_{i=1}^n \phi_i,

где φi — угол между лучами PVi - 1 и PVi, т.е.:

\phi_i = \arccos\left.

Можно доказать, что эта сумма есть не что иное, как winding number точки P относительно границы многоугольника, с точностью до константного множителя 2π. Поэтому можно считать, что точка лежит снаружи многоугольника, если сумма равна нулю. Однако данный метод весьма непрактичен, так как требует вычисления дорогостоящих операций для каждого ребра, и был даже назван «худшим в мире алгоритмом» для данной задачи.

К. Вейлером был предложен практичный вариант этого метода, избегающий дорогостоящих операций и приближенных вычислений. Было показано, что сумму углов можно вычислить, используя лишь операцию классификации точки многоугольника по квадрантам относительно точки P. Алгоритм Вейлера и некоторые улучшения к нему описываются в .



Просмотров: 5028


<<< Диаграмма Вороного
Линейное программирование >>>