У меня есть набор полигонов, и мне нужно проверить, пересекаются ли они с заданным ограничивающим прямоугольником (прямоугольником). То, что я делаю, я беру каждую вершину многоугольника и проверяю, находится ли она в ограничительной рамке или нет.Эффективный способ определения пересечения многоугольника с ограничивающей рамкой
If yes
return true
else
Now I am taking every vertex(i.e 4 vertices) of my bounding box and checking whether it is inside polygon or not,
using the algorithm from http://assemblysys.com/php-point-in-polygon-algorithm/
if yes
return true
else
return false(box and polygon are not intersecting)
Этот способ приближения занимает слишком много времени. Я хочу еще один алгоритм, который быстрее этого. Я попытался найти ответ на Google, но не смог ничего найти. Я попытался найти код функции mysql st_intersects() в github, но снова мне не удалось найти этот код функции.
Я знаю, что существует много алгоритмов, но, поскольку я новичок в этом поле, мне не удалось найти алгоритмы, поэтому я использовал вышеупомянутый подход.
Допускается ли предварительная обработка разрешенных полигонов? –
Обратите внимание, что ваш подход неверен. Вы можете очень хорошо иметь полигон, пересекающий поле без прямоугольной вершины внутри многоугольника. –