Eine übliche Methode zum Beschreiben eines 3-Dimensionalen Raumes ist eine Annäherung durch Dreiecke. Jede Fläche wird dabei zuerst durch ein Vieleck approximiert und dann wird dieses Vieleck in Dreiecke aufgeteilt. mayavi2 bietet die Möglichkeit diese Daten grafisch Darzustellen. Dazu wird der „tvtk.PolyData“ Datentyp verwendet. Dazu wird das „tvtk“ Paket und das mayavi2 Paket benötigt.
tvtk.api import tvtk mayavi.scripts import mayavi2
Zur Erstellung eines PolyData meshes werden zwei zwei Dimensionale numpy-Arrays benötigt. Das erste Array enthält die Koordinaten der Punkte und das zweite Array beschreibt welche drei Knoten zu einem Dreieck gehören.
punkte = [[10, 0, 0], [-10,0,0], [0, 10, 0], [10, 0, 10], [-10, 0, 10], [0, 10, 10]] dreiecke = [[0, 1, 2], [3, 4, 5] punkte = np.asarray(punkte) dreiecke = np.asarray(dreiecke) mesh = tvtk.PolyData(points=punkte, polys=dreiecke) temperature = np.array([10., 20., 30., 40.]) mesh.point_data.scalars = temperature view(mesh)
Scalars legt in diesem Codebeispiel die Farbe der Dreiecke fest. Es erzeugt folgende Ausgabe:
Die view Funktion muss grundsätzlich von uns nicht verändert werden.
@mayavi2.standalone def view(mesh): from mayavi.sources.vtk_data_source import VTKDataSource from mayavi.modules.surface import Surface mayavi.new_scene() src = VTKDataSource(data=mesh) mayavi.add_source(src) s = Surface() mayavi.add_module(s)
Nützliche Quellen: