Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1415:projekte_im_wintersemester_2014_15:nuetzliche_programmschnipsel

Dies ist eine alte Version des Dokuments!


Nützliche Programmschnipsel

3d-Punkte zeichnen

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
 
myArray  = np.loadtxt("etopo1_bedrock.asc", skiprows=6)
z,s=myArray.shape
 
x=np.zeros((z,s))
for i in range(z):
	x[i]=i
 
y=np.zeros((z,s))
for i in range(s):
	y[:,i]=i
 
z=myArray
 
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, zdir='z', c= 'red')
plt.show()

3d-Dreiecke zeichnen

# -*- coding: utf-8 -*-
 
import numpy as np
from scipy.spatial import Delaunay
import mpl_toolkits.mplot3d as mplot3d
import matplotlib.colors as colors
import pylab as pl
 
###  erzeuge ein Gitter von x,y-Werten mit zugehörigen z-Werten
 
x=np.linspace(-1,1,10)
y=np.linspace(-1,1,10)
XX,YY=np.meshgrid(x,y)
ZZ=np.sin(XX*XX+YY*YY)
 
###  Erzeuge ein Array mit (x,y)-Koordinaten und eines
###  mit (x,y,z)-Koordinaten
 
points3d = np.array([XX.flatten(),YY.flatten(),ZZ.flatten()]).T
points2d=  np.array([XX.flatten(),YY.flatten()]).T
 
### Berechne Delaunay-Triangulierung des Gitters
 
 
tri = Delaunay(points2d)
 
###  Darstellung auf der Basis der erzeugten Dreiecke -- es gibt
###  in Matplotlib ganz verschiedene Schnittstellen, die dasselbe
###  tun. 
 
###  Hier wird mit ax=mplot3d.Axes3D(...) ein 3d-Koordinatensystem
###  erzeugt, dem man 3d-Objekte hinzufügen kann mit ax.add_collection3d(...)
###  In unserem Fall werden Dreiecke hinzugefügt, die mit 
###  mplot3d.art3d.Poly3DCollection(...) werden
 
 
 
ax = mplot3d.Axes3D(pl.figure())
for simplex in tri.simplices:
    ecken = np.array([points3d[simplex[0]],points3d[simplex[1]],points3d[simplex[2]]])
 
    dreieck = mplot3d.art3d.Poly3DCollection([ecken])
    ### Man kann von diesen Graphikobjekten Eigenschaften einstellen:
    dreieck.set_color(colors.rgb2hex(np.random.rand(3)))
    dreieck.set_edgecolor('k')
 
    ax.add_collection3d(dreieck)
 
pl.show()
ws1415/projekte_im_wintersemester_2014_15/nuetzliche_programmschnipsel.1417080238.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)