Какой самый быстрый способ проверить, находится ли точка внутри многоугольника в PythonPython

Программы на Python
Ответить
Anonymous
 Какой самый быстрый способ проверить, находится ли точка внутри многоугольника в Python

Сообщение Anonymous »

Я нашел два основных метода проверки принадлежности точки внутри многоугольника. Один использует используемый здесь метод трассировки лучей, который является наиболее рекомендуемым ответом, другой использует matplotlib path.contains_points (который мне кажется немного непонятным). Мне придется постоянно проверять множество точек. Кто-нибудь знает, является ли какой-либо из этих двух более рекомендуемым, чем другой, или есть ли еще лучший третий вариант?
ОБНОВЛЕНИЕ:
Я проверил два метода и matplotlib выглядят намного быстрее.

Код: Выделить всё

from time import time
import numpy as np
import matplotlib.path as mpltPath

# regular polygon for testing
lenpoly = 100
polygon = [[np.sin(x)+0.5,np.cos(x)+0.5] for x in np.linspace(0,2*np.pi,lenpoly)[:-1]]

# random points set of points to test
N = 10000
points = np.random.rand(N,2)

# Ray tracing
def ray_tracing_method(x,y,poly):

n = len(poly)
inside = False

p1x,p1y = poly[0]
for i in range(n+1):
p2x,p2y = poly[i % n]
if y > min(p1y,p2y):
if y 

Подробнее здесь: [url]https://stackoverflow.com/questions/36399381/whats-the-fastest-way-of-checking-if-a-point-is-inside-a-polygon-in-python[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»