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?
5
A
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()
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
.