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.