Creando una curva de Bezier

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este tutorial, aprenderemos cómo crear una curva de Bezier utilizando la biblioteca Matplotlib de Python. Una curva de Bezier es una curva matemática que se utiliza comúnmente en gráficos de computadora para crear formas suaves y estéticamente agradables. Crearemos un ejemplo simple de una curva de Bezier utilizando el objeto PathPatch de Matplotlib.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y resolveremos el problema para usted de inmediato.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48891{{"Creando una curva de Bezier"}} matplotlib/figures_axes -.-> lab-48891{{"Creando una curva de Bezier"}} matplotlib/line_plots -.-> lab-48891{{"Creando una curva de Bezier"}} python/lists -.-> lab-48891{{"Creando una curva de Bezier"}} python/tuples -.-> lab-48891{{"Creando una curva de Bezier"}} python/importing_modules -.-> lab-48891{{"Creando una curva de Bezier"}} python/data_visualization -.-> lab-48891{{"Creando una curva de Bezier"}} end

Importando bibliotecas

Para crear una curva de Bezier utilizando Matplotlib, necesitamos importar las bibliotecas necesarias. Importaremos matplotlib.pyplot para crear la gráfica y matplotlib.patches para crear el objeto PathPatch.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Creando la ruta

A continuación, crearemos el objeto Path para la curva de Bezier. El objeto Path toma una lista de vértices y códigos que especifican el tipo de ruta entre los vértices. En este caso, usaremos un código MOVETO para moverse al punto de partida, seguido de dos códigos CURVE3 para especificar los puntos de control y el punto final, y finalmente un código CLOSEPOLY para cerrar la ruta.

Path = mpath.Path

bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
                   [Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])

Creando el objeto PathPatch

Ahora que tenemos el objeto Path, podemos crear el objeto PathPatch que se utilizará para dibujar la curva de Bezier en la gráfica. Estableceremos el facecolor en 'none' para que se dibuje solo la curva y no se rellene.

bezier_patch = mpatches.PathPatch(bezier_path, fc="none")

Creando la gráfica

Ahora podemos crear la gráfica agregando el objeto PathPatch al eje y dibujando un punto rojo que debería estar sobre la curva. También estableceremos el título de la gráfica en 'Bezier Curve'.

fig, ax = plt.subplots()

ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')

plt.show()

El código final debería verse así:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Path = mpath.Path

bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
                   [Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])

bezier_patch = mpatches.PathPatch(bezier_path, fc="none")

fig, ax = plt.subplots()

ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')

plt.show()

Resumen

En este tutorial, aprendimos cómo crear una curva de Bezier utilizando la biblioteca Matplotlib de Python. Utilizamos los objetos Path y PathPatch para crear la curva y la agregamos a una gráfica. También dibujamos un punto rojo en la curva para demostrar que se encuentra sobre ella. La curva de Bezier se utiliza comúnmente en gráficos de computadora para crear formas suaves y estéticamente atractivas.