Criando uma Curva de Bézier

Beginner

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

Introdução

Neste tutorial, aprenderemos como criar uma Curva de Bézier usando a biblioteca Matplotlib do Python. Uma Curva de Bézier é uma curva matemática comumente usada em computação gráfica para criar formas suaves e esteticamente agradáveis. Criaremos um exemplo simples de uma Curva de Bézier usando o objeto PathPatch do Matplotlib.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importando Bibliotecas

Para criar uma Curva de Bézier usando Matplotlib, precisamos importar as bibliotecas necessárias. Importaremos matplotlib.pyplot para criar o gráfico e matplotlib.patches para criar o objeto PathPatch.

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

Criando o Caminho (Path)

Em seguida, criaremos o objeto Path para a Curva de Bézier. O objeto Path recebe uma lista de vértices e códigos que especificam o tipo de caminho entre os vértices. Neste caso, usaremos um código MOVETO para mover para o ponto inicial, seguido por dois códigos CURVE3 para especificar os pontos de controle e o ponto final, e finalmente um código CLOSEPOLY para fechar o caminho.

Path = mpath.Path

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

Criando o Objeto PathPatch

Agora que temos o objeto Path, podemos criar o objeto PathPatch que será usado para desenhar a Curva de Bézier no gráfico. Definiremos o facecolor como 'none' para que apenas a curva seja desenhada e não preenchida.

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

Criando o Gráfico (Plot)

Agora podemos criar o gráfico adicionando o objeto PathPatch aos eixos e plotando um ponto vermelho que deve estar na curva. Também definiremos o título do gráfico como '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()

O código final deve ser assim:

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()

Resumo

Neste tutorial, aprendemos como criar uma Curva de Bézier usando a biblioteca Matplotlib do Python. Usamos os objetos Path e PathPatch para criar a curva e adicioná-la a um gráfico (plot). Também plotamos um ponto vermelho na curva para mostrar que ele está na curva. A Curva de Bézier é comumente usada em computação gráfica para criar formas suaves e esteticamente agradáveis.