2013-04-27 13 views
5

Mam numpy tablicę 2d reprezentującą geometryczną wysokość określonego obszaru, w którym ulica będzie budowana. Mogę to sobie wyobrazić za pomocą scipy.misc.toimage. Chciałbym jednak uzyskać prosty widok 3D tego obszaru. Czy istnieje prosty sposób na wykreślenie lub renderowanie tych danych jako obrazu 3D?Narysuj teren za pomocą pythona?

Odpowiedz

8

Może użyć matplotlib na plot_surface lub plot_wireframe:

import matplotlib.pyplot as plt 
import numpy as np 
import mpl_toolkits.mplot3d.axes3d as axes3d 

np.random.seed(1) 
fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) 
N = 100 
X, Y = np.meshgrid(np.arange(N), np.arange(N)) 
heights = np.sin(2*np.pi*np.sqrt(X**2+Y**2)/N) 
ax.plot_surface(X, Y, heights, cmap=plt.get_cmap('jet')) 
plt.show() 

enter image description here

Funkcje te wymagają trzech 2D tablice: X, Y, Z. masz Heights, Z. Aby wygenerować standardowe lokalizacje X i Y związane z tymi Z s, można użyć np.meshgrid.

Powiązane problemy