У меня есть трехмерная точка P (x, y, z) и многоугольник S, определяемый произвольным количеством трехмерных точек. Многоугольник не обязательно должен быть выпуклым (поэтому, на мой взгляд, решения, представленные здесь, не отвечают на мой вопрос), но P находится в в той же плоскости, что и S.Теперь мне нужно определить, лежит ли P внутри S.
Например:
polygon = np.array([[6173.953125 , 9689.90136719, 298.03326416],
[6173.95410156, 9689.90136719, 298.09350586],
[6173.89355469, 9689.86621094, 298.23690796],
[6173.89355469, 9689.86621094, 298.23690796],
[6173.83496094, 9689.83398438, 298.5083313 ],
[6173.89453125, 9689.86816406, 298.38320923],
[6173.89697266, 9689.87011719, 298.44348145],
[6173.89697266, 9689.87011719, 298.44348145],
[6173.953125 , 9689.90136719, 298.03326416],
[6173.89355469, 9689.86621094, 298.23690796],
...
])
point = np.array([6171.37079656, 9688.35796064, 309.00229108])
Пример изображения: точка за пределами многоугольника:
В этом примере очевидно, что результат должен быть «Ложь» (точка находится снаружи).
Используя точку:
point2 = np.array([6173.83496094, 9689.83398438, 297.72579346])
результат должен быть «True» (точка в многоугольнике).
Пример изображения: точка внутри многоугольника:
Я знаю, что в основном мне нужно решить простую задачу «точка в многоугольнике» (PiP). Однако существует ли пакет, который включает такую функцию напрямую? Или как я могу преобразовать все точки для применения алгоритмов PiP, предоставляемых shapely или аналогичными пакетами?
hit test
иperpendicular distance between point and plane
... - person Spektre   schedule 27.06.2019