Gibt es ein Python-Paket, das eine Implementierung eines Straight Skeleton-Algorithmus bietet?
Ich bin mir bewusst, dass das Open Source (C ++) Projekt CGAL eine Implementierung enthält, aber es scheint, dass cgal-bindings dieses CGAL-Paket nicht enthält .
In jedem Fall würde ich eine reine Python-Implementierung bevorzugen, die ich an meine Bedürfnisse anpassen kann.
Eine Implementierung, die Polygone mit Löchern verarbeiten kann, ist zwar vorzuziehen, jedoch nicht unbedingt erforderlich.
Antworten:
Vielleicht können Sie pySkeleton von Olivier Teboul an Ihre Bedürfnisse anpassen .
Ich hatte keine Gelegenheit, mir den eigentlichen Code anzusehen, aber von dem, was er sagt, sollte es reines Python sein .
quelle
Sie können pySkeleton wie folgt verwenden:
Sie erhalten ein Graph-Objekt mit Knoten und Bögen, auf das Sie einfach zugreifen können:
Wie in der pySkeleton-Datei readme.txt angegeben, müssen die Polygonscheitelpunkte im Uhrzeigersinn sein. Für Löcher innerhalb des Polygons müssen die Scheitelpunkte gegen den Uhrzeigersinn sein.
Anmerkung: Bei komplexeren Polygonen mit mehr als 100 Eckpunkten und Kanten ist pySkeleton nicht realisierbar. Außerdem erhalte ich für einige Polygone seltsame Ergebnisse. Ich gehe davon aus, dass es nicht in allen Fällen richtig funktioniert.
Trotzdem ein großes Dankeschön an Olivier Teboul für diese Bibliothek.
quelle