Was ist der schnellste Weg, um in Python zu überprüfen, ob sich ein Punkt innerhalb eines Polygons befindet?Python

Python-Programme
Guest
 Was ist der schnellste Weg, um in Python zu überprüfen, ob sich ein Punkt innerhalb eines Polygons befindet?

Post by Guest »

Ich habe zwei Hauptmethoden gefunden, um zu prüfen, ob ein Punkt in ein Polygon gehört. Einer verwendet die hier verwendete Raytracing-Methode, die am meisten empfohlene Antwort, der andere verwendet matplotlib path.contains_points (was mir etwas unklar erscheint). Ich werde viele Punkte ständig überprüfen müssen. Weiß jemand, ob eine dieser beiden empfehlenswerter ist als die andere oder ob es noch bessere dritte Optionen gibt?
Ich habe die beiden Methoden überprüft und Matplotlib sieht viel schneller aus.

Code: Select all

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post