Types de projections pour les tracés 3D

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce laboratoire démontre les différentes projections d'appareil photo pour les tracés 3D, et les effets du changement de la longueur focale pour une projection perspective à l'aide de Python Matplotlib.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

Tout d'abord, importez les bibliothèques nécessaires, y compris Matplotlib et Axes3D à partir de mpl_toolkits.mplot3d.

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

Obtenir les données

Obtenez les données de test pour le tracé 3D.

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

Créer une figure avec des sous-graphiques

Créez une figure avec trois sous-graphiques à l'aide de plt.subplots.

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

Tracer les données

Tracez les données sur chacun des trois sous-graphiques à l'aide de plot_wireframe.

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

Régler la projection orthographique

Réglez le premier sous-graphique pour utiliser une projection orthographique avec un champ de vision (FOV) de 0 degrés et une longueur focale (focal_length) infinie.

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

Régler les projections perspective

Réglez le deuxième sous-graphique pour utiliser une projection perspective avec le champ de vision (FOV) par défaut de 90 degrés et une longueur focale (focal_length) de 1.

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

Réglez le troisième sous-graphique pour utiliser une projection perspective avec un champ de vision (FOV) de 157,4 degrés et une longueur focale (focal_length) de 0,2.

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)

Afficher le tracé

Affichez le tracé à l'aide de plt.show().

plt.show()

Sommaire

Dans ce laboratoire, nous avons montré comment créer un tracé 3D à l'aide de Python Matplotlib et comment modifier le type de projection et la longueur focale du tracé. La projection orthographique aplatit l'image tandis que la projection perspective exagère la perspective et donne à l'image une profondeur apparente plus importante. La longueur focale par défaut de 1 correspond à un champ de vision (FOV) de 90 deg.