3D-Diagramm-Projektionstypen

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden die verschiedenen Kameraprojektionen für 3D-Darstellungen und die Auswirkungen der Veränderung der Brennweite für eine Perspektivprojektion mithilfe von Python Matplotlib demonstriert.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in 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 importieren Sie die erforderlichen Bibliotheken, einschließlich Matplotlib und Axes3D aus mpl_toolkits.mplot3d.

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

Daten abrufen

Rufen Sie die Testdaten für die 3D-Darstellung ab.

X, Y, Z = axes3d.get_test_data(0.05)

Erstellen einer Figur mit Teilfiguren

Erstellen Sie eine Figur mit drei Teilfiguren mit plt.subplots.

fig, axs = plt.subplots(1, 3, subplot_kw={'projection': '3d'})

Die Daten darstellen

Stellen Sie die Daten auf jeder der drei Teilfiguren mit plot_wireframe dar.

for ax in axs:
    ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

Die orthogonale Projektion einstellen

Stellen Sie die erste Teilfigur so ein, dass sie eine orthogonale Projektion mit einem FOV von 0 Grad und einer Brennweite von unendlich verwendet.

axs[0].set_proj_type('ortho')  ## FOV = 0 deg
axs[0].set_title("'ortho'\nfocal_length = ∞", fontsize=10)

Die perspektivischen Projektionen einstellen

Stellen Sie die zweite Teilfigur so ein, dass sie eine perspektivische Projektion mit der standardmäßigen FOV von 90 Grad und einer Brennweite von 1 verwendet.

axs[1].set_proj_type('persp')  ## FOV = 90 deg
axs[1].set_title("'persp'\nfocal_length = 1 (default)", fontsize=10)

Stellen Sie die dritte Teilfigur so ein, dass sie eine perspektivische Projektion mit einer FOV von 157,4 Grad und einer Brennweite von 0,2 verwendet.

axs[2].set_proj_type('persp', focal_length=0.2)  ## FOV = 157.4 deg
axs[2].set_title("'persp'\nfocal_length = 0.2", fontsize=10)

Zeige das Diagramm an

Zeige das Diagramm mit plt.show() an.

plt.show()

Zusammenfassung

In diesem Lab wurde gezeigt, wie man mit Python Matplotlib einen 3D-Diagramm erstellt und wie man den Projektionstyp und die Brennweite des Diagramms ändert. Die orthogonale Projektion verflacht das Bild, während die perspektivische Projektion die Perspektive übertreibt und dem Bild eine größere scheinbare Tiefe verleiht. Die standardmäßige Brennweite von 1 entspricht einem Blickwinkel (FOV) von 90 Grad.