Créer un polygone rempli avec Matplotlib

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

Dans ce laboratoire, nous allons apprendre à créer un polygone rempli à l'aide de Matplotlib en Python. Nous utiliserons le flocon de Koch comme exemple de polygone.

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

Importation des bibliothèques

Avant de commencer, importons les bibliothèques nécessaires.

import matplotlib.pyplot as plt
import numpy as np

Définir la fonction du flocon de Koch

Ensuite, nous allons définir une fonction pour générer le flocon de Koch. La fonction prend deux paramètres : la profondeur de récursion et le facteur d'échelle.

def koch_snowflake(order, scale=10):
    """
    Retourne deux listes x, y des coordonnées des points du flocon de Koch.

    Paramètres
    ----------
    order : int
        La profondeur de récursion.
    scale : float
        L'étendue du flocon (longueur du côté du triangle de base).
    """
    def _koch_snowflake_complex(order):
        if order == 0:
            ## triangle initial
            angles = np.array([0, 120, 240]) + 90
            return scale / np.sqrt(3) * np.exp(np.deg2rad(angles) * 1j)
        else:
            ZR = 0.5 - 0.5j * np.sqrt(3) / 3

            p1 = _koch_snowflake_complex(order - 1)  ## points de départ
            p2 = np.roll(p1, shift=-1)  ## points d'arrivée
            dp = p2 - p1  ## vecteurs de connexion

            new_points = np.empty(len(p1) * 4, dtype=np.complex128)
            new_points[::4] = p1
            new_points[1::4] = p1 + dp / 3
            new_points[2::4] = p1 + dp * ZR
            new_points[3::4] = p1 + dp / 3 * 2
            return new_points

    points = _koch_snowflake_complex(order)
    x, y = points.real, points.imag
    return x, y

Générer un polygone rempli

Maintenant, nous pouvons générer un polygone rempli à l'aide de la fonction fill(). Nous allons utiliser la fonction du flocon de Koch pour générer les coordonnées du polygone.

x, y = koch_snowflake(order=5)

plt.figure(figsize=(8, 8))
plt.axis('equal')
plt.fill(x, y)
plt.show()

Personnaliser le polygone

Nous pouvons personnaliser les couleurs et la largeur de ligne du polygone en utilisant des arguments clés dans la fonction fill().

x, y = koch_snowflake(order=2)

fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(9, 3),
                                    subplot_kw={'aspect': 'equal'})
ax1.fill(x, y)
ax2.fill(x, y, facecolor='lightsalmon', edgecolor='orangered', linewidth=3)
ax3.fill(x, y, facecolor='none', edgecolor='purple', linewidth=3)

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer un polygone rempli à l'aide de Matplotlib en Python. Nous avons utilisé le flocon de Koch comme exemple de polygone et montré comment personnaliser le polygone avec différentes couleurs et largeurs de ligne.