2012-04-07 3 views
-3

Каков наилучший алгоритм для решения точки в многоугольнике в конкурсах программирования?Точка в полигоном Алгоритм в программировании Конкурсы

+3

Существуют оптимизированные алгоритмы для большинства общих фигур (а именно треугольники и четырехугольники), но простой подход изложена в Википедии, которая должна работать для любого произвольного многоугольника, если вы правильно выбрали луч: http: // ru. wikipedia.org/wiki/Point_in_polygon – Blender

+0

-1 Вы хотите ввести конкурс вычислительной геометрии, но попросите сообщество решить его для вас !? – cmannett85

+0

Как вы пришли к такому выводу cmannett85 ?? !! – user1284064

ответ

1

Стреляй луч (в произвольном направлении) от точки и проверьте, сколько раз он пересек края многоугольника, если он даже тогда точка находится за пределами многоугольника, иначе точка находится внутри многоугольника.

Если вам нужно сделать это для множества точек запроса, вы можете триангулировать многоугольник (фактически триангулировать как внутри, так и область между многоугольником, выпуклым, содержащим его), чтобы вы могли снимать лучи в O (log n)

Смежные вопросы