Mam zestaw danych 3-wymiarowych punktów, dla których chciałbym zbudować siatkę, używając Pythona. Całe oprogramowanie, które widziałem, wymaga podania krawędzi. Czy w Pythonie jest program, który jako dane wejściowe przyjmuje zestaw punktów w 3D i generuje siatkę? Jeśli to możliwe, chciałbym, aby siatka była jednolita.
python
mesh-generation
Chochlik
źródło
źródło
Odpowiedzi:
Jeśli nieograniczona triangulacja jest w porządku, możesz to zrobić za pomocą scipy.spatial.Delaunay, który używa Qhull.
źródło
CGAL ( http://www.cgal.org ) ma wiele modułów do triangulacji punktów w 3D (siatki powierzchni od punktów, triangulacje punktów w 3D itp.). Dostępne są opakowania w języku Python dla podzbioru modułów CGAL ( https://code.google.com/p/cgal-bindings ), w tym dla triangulacji 3D. Użyłem interfejsu CGAL C ++ do triangulacji punktów w 3D, ale nie mam doświadczenia z interfejsem Python.
źródło
Możesz wypróbować VTK, który ma API Pythona. Najpierw spróbuję ParaView i wezmę w to twoje punkty, a następnie wypróbuję niektóre filtry (np. Delaunay). Jeśli filtry działają w ParaView z twoimi danymi (które są oparte na VTK), możesz użyć VTK do wykonania zadania. To, jak odniesiesz sukces, będzie zależeć od tego, jak wyglądają punkty i jak ładnie pasują do filtrów.
Jeśli VTK wygląda na to, że zadziała, zapoznaj się z samouczkami Kitware na VTK, ponieważ wiem, że jest taki, który przechodzi przez używanie Python / VTK.
źródło