Ich habe einen Datensatz mit dreidimensionalen Punkten, für die ich mit Python ein Netz erstellen möchte. Für die gesamte Software, die ich gesehen habe, müssen Sie die Kanten bereitstellen. Gibt es ein Programm in Python, das eine Reihe von Punkten in 3D als Eingabe verwendet und ein Netz ausgibt? Wenn möglich, möchte ich, dass die Vernetzung einheitlich ist.
11
Antworten:
Wenn eine uneingeschränkte Triangulation in Ordnung ist, können Sie dies mit scipy.spatial.Delaunay tun, das Qhull verwendet.
quelle
CGAL ( http://www.cgal.org ) verfügt über eine Reihe von Modulen zum Triangulieren von Punkten in 3D (Oberflächennetze aus Punkten, Triangulationen von Punkten in 3D usw.). Python-Wrapper für eine Teilmenge von CGAL-Modulen sind verfügbar ( https://code.google.com/p/cgal-bindings ), auch für 3D-Triangulationen. Ich habe die CGAL C ++ - Schnittstelle zum Triangulieren von Punkten in 3D verwendet, habe jedoch keine Erfahrung mit der Python-Oberfläche.
quelle
Sie können VTK mit einer Python-API ausprobieren . Ich würde zuerst ParaView ausprobieren und Ihre Punkte einbringen und dann einige der Filter ausprobieren (z. B. Delaunay). Wenn die Filter in ParaView mit Ihren Daten (die VTK-basiert sind) funktionieren, können Sie VTK verwenden, um die Aufgabe zu erledigen. Wie erfolgreich Sie sein werden, hängt davon ab, wie die Punkte aussehen und wie gut sie zu den Filtern passen.
Wenn VTK so aussieht, als würde es funktionieren, schauen Sie sich die Kitware-Tutorials zu VTK an, da ich weiß, dass es eines gibt, das Python / VTK verwendet.
quelle