Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1415:projekte_im_wintersemester_2014_15:3d-polygon_darstellung_mithilfe_des_mayavi_pakets

3D-Polygon Darstellung mit mayavi

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:

ws1415/projekte_im_wintersemester_2014_15/3d-polygon_darstellung_mithilfe_des_mayavi_pakets.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)