Ich suche in Python einen Algorithmus, eine Lösung auf hoher Ebene oder sogar eine Bibliothek, mit deren Hilfe ich feststellen kann, ob sich zwei Polygone überschneiden.
Ich habe die Eckpunkte der beiden Polygone (Dies sind einteilige Polygone ohne Löcher) in zwei verschiedenen Arrays. Die Polygone sind 2D (dh nur X- und Y-Koordinaten)
Ich möchte eine Funktion erstellen, die einen Booleschen Wert zurückgibt, der angibt, ob sich diese beiden Polygone schneiden.
Bitte beachten Sie, dass ich arcpy
keine arcgis
Komponenten in diesem verwenden kann.
Können Sie einen Algorithmus oder eine Bibliothek dafür vorschlagen?
quelle
Wenn Sie R kennen oder lernen möchten, stehen Ihnen einige nützliche räumliche Pakete zur Verfügung. http://cran.r-project.org/web/views/Spatial.html Es gibt ein Python-Modul zur Interaktion mit R (RPy *)
quelle
Ich weiß, dass dies eine alte Frage ist, aber ich habe eine Python-Bibliothek geschrieben, um Kollisionen zwischen konkaven und konvexen Polygonen sowie Kreisen zu behandeln.
Es ist ziemlich einfach zu bedienen, los geht's!
Beispiel:
Sie können auch eine Antwort generieren lassen, die Folgendes umfasst:
https://github.com/QwekoDev/collision
quelle
Wenn Sie das Level wissen wollen, können Sie dies verwenden. Als Argument können Sie eine Liste von Polygonen angeben. Und als Rückgabewert erhalten Sie eine Liste von Ebenen. In der Liste der Ebenen befinden sich die Polygone.
quelle