Dreieckige 3D-Oberflächen

Beginner

This tutorial is from open-source community. Access the source code

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.