„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Welche Methode ist effizienter für die Erkennung von Punkt-in-Polygon: Strahlenverfolgung oder Matplotlib \ 's path.contains_points?

Welche Methode ist effizienter für die Erkennung von Punkt-in-Polygon: Strahlenverfolgung oder Matplotlib \ 's path.contains_points?

Gepostet am 2025-04-27
Durchsuche:614

Which Method is More Efficient for Point-in-Polygon Detection: Ray Tracing or Matplotlib\'s path.contains_points?

effiziente Punkt-in-Polygon-Erkennung in Python

festlegen, ob ein Punkt innerhalb eines Polygons eine häufige Aufgabe in der Computergeometrie ist. Eine effiziente Methode für diese Aufgabe zu finden ist bei der Bewertung einer großen Anzahl von Punkten vorteilhaft. Hier untersuchen und vergleichen wir zwei häufig verwendete Methoden: Strahlenverfolgung und Matplotlibs Path.Contains_Points Funktion.

Ray Tracing -Methode

Die Ray -Tracing -Methode überschneidet einen Horizontalstrahl von einem Horizontalen Strahl aus dem Horizontalen Strahl von Strahl Der Punkt untersucht mit den Seiten des Polygons. Es zählt die Anzahl der Kreuzungen und bestimmt, ob sich der Punkt im Polygon basierend auf seiner Parität befindet. Pfadobjekt zur Darstellung des Polygons. Es prüft, ob der angegebene Punkt innerhalb des definierten Pfades liegt. Diese Funktion ist oft schneller als der Ansatz der Strahlenverfolgung, wie im Code -Snippet angezeigt wird:

  von Zeit importieren  Matplotlib.Path als mpltpath  

Polygon und zufällige Punkte

polygon = [[np.sin (x) 0,5, np.cos (x) 0,5] für x in np.linspace (0, 2*np.pi, 100)]
punkte = np.random.rand (10000, 2)

Ray Tracing verstrichene Zeit

start_time = time ()

inside1 = [ray_tracing_method (point [0], Punkt [1) ], polygon) für Punkte in Punkten]
print ("Ray Tracing verstrichene Zeit:" str (time () - start_time)

Matplotlib enthält die verstrichene Zeit

start_time = time (Zeit (Zeit )
path = mpltpath.path (polygon)
inside2 = path.contains_points (Punkte)

print ("matplotlib enthält >

Der obige Code meldet wesentlich schnellere Ausführungszeiten für Matplotlibs Ansatz im Vergleich zu Ray Tracing.



andere Optionen

zusätzlich zu diesen Methoden, die Shapey-Paket speziell für geometrische Operationen ausgelegte Paket bietet effiziente Funktionen für Point-in-Polygon-Überprüfungen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3