Visualisation de grille triangulaire non structurée

Beginner

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

Introduction

Dans ce laboratoire, nous allons créer un tracé de contour 3D triangulaire à l'aide de Matplotlib. Ce tracé est utile pour visualiser des maillages triangulaires non structurés. Nous utiliserons les mêmes données que dans le second tracé de trisurf3d_2.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'adresses pour accéder au carnet Jupyter pour pratiquer.

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

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églerons rapidement le problème pour vous.

Importez les bibliothèques nécessaires

Nous allons commencer par importer les bibliothèques nécessaires pour ce laboratoire, qui incluent Matplotlib et NumPy.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri

Définir les variables

Nous allons définir les variables que nous utiliserons pour créer notre tracé. Ces variables incluent le nombre d'angles, le nombre de rayons et le rayon minimum.

n_angles = 48
n_radii = 8
min_radius = 0.25

Créer un maillage et calculer x, y, z

Nous allons créer le maillage dans les coordonnées polaires et calculer x, y, z en utilisant les variables définies.

radii = np.linspace(min_radius, 0.95, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
angles[:, 1::2] += np.pi/n_angles

x = (radii*np.cos(angles)).flatten()
y = (radii*np.sin(angles)).flatten()
z = (np.cos(radii)*np.cos(3*angles)).flatten()

Créer une triangulation personnalisée

Nous allons créer une triangulation personnalisée en utilisant les coordonnées x et y.

triang = tri.Triangulation(x, y)

Masquer les triangles indésirables

Nous allons masquer les triangles indésirables en utilisant la moyenne des coordonnées x et y.

triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1),
                         y[triang.triangles].mean(axis=1))
                < min_radius)

Créer un tracé de courbe en 3D

Nous allons créer un tracé de courbe en 3D en utilisant la triangulation créée et les coordonnées z. Nous allons également personnaliser l'angle de vue pour faciliter la compréhension du tracé.

ax = plt.figure().add_subplot(projection='3d')
ax.tricontour(triang, z, cmap=plt.cm.CMRmap)
ax.view_init(elev=45.)
plt.show()

Sommaire

Dans ce laboratoire, nous avons créé un tracé de courbe en 3D triangulaire à l'aide de Matplotlib. Nous avons parcouru les étapes d'importation des bibliothèques nécessaires, de définition de variables, de création d'un maillage, de création d'une triangulation personnalisée, de masquage des triangles indésirables et de création du tracé de courbe en 3D.