Einführung
In diesem Lab werden wir lernen, wie man mit der Python Matplotlib-Bibliothek eine 3D-Oberfläche mit einem Dreiecksnetz erstellt.
Tipps für die virtuelle Maschine
Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Bibliotheken importieren
Zunächst müssen wir die erforderlichen Bibliotheken importieren:
import matplotlib.pyplot as plt
import numpy as np
Variablen definieren
Wir werden die Variablen für die Radien und Winkel definieren:
n_radii = 8
n_angles = 36
Radii- und Winkelräume erstellen
Wir werden die Radii- und Winkelräume mit der linspace-Funktion erstellen:
## Make radii and angles spaces (radius r=0 omitted to eliminate duplication).
radii = np.linspace(0.125, 1.0, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]
Polarkoordinaten in kartesische Koordinaten umwandeln
Wir werden die Polarkoordinaten in kartesische Koordinaten umwandeln:
## Convert polar (radii, angles) coords to cartesian (x, y) coords.
## (0, 0) is manually added at this stage, so there will be no duplicate
## points in the (x, y) plane.
x = np.append(0, (radii*np.cos(angles)).flatten())
y = np.append(0, (radii*np.sin(angles)).flatten())
Z berechnen, um die Pringle-Oberfläche zu erzeugen
Wir werden z berechnen, um die Pringle-Oberfläche zu erzeugen:
## Compute z to make the pringle surface.
z = np.sin(-x*y)
Die 3D-Oberfläche erstellen
Wir werden die 3D-Oberfläche mit der plot_trisurf-Funktion erstellen:
ax = plt.figure().add_subplot(projection='3d')
ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)
plt.show()
Zusammenfassung
In diesem Lab haben wir gelernt, wie man mit der Python-Bibliothek Matplotlib eine 3D-Oberfläche mit einem Dreiecksnetz erstellt. Wir haben die erforderlichen Bibliotheken importiert, Variablen für die Radien und Winkel definiert, die Radien- und Winkelräume erstellt, die Polarkoordinaten in kartesische Koordinaten umgewandelt, z berechnet, um die Pringle-Oberfläche zu erzeugen, und die 3D-Oberfläche mit der plot_trisurf-Funktion erstellt.