Elipse com Unidades

Beginner

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

Introdução

Neste laboratório, você aprenderá como comparar a elipse gerada com arcos versus uma aproximação poligonal usando Python Matplotlib.

Dicas da 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ê.

Importar Bibliotecas

Para começar, importaremos as bibliotecas necessárias.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import patches

Definir Parâmetros da Elipse

Nesta etapa, definiremos os parâmetros para a elipse.

xcenter, ycenter = 0.38, 0.52
width, height = 0.1, 0.3
angle = -30

Gerar Elipse usando Arcos

Nesta etapa, geraremos a elipse usando arcos.

theta = np.deg2rad(np.arange(0.0, 360.0, 1.0))
x = 0.5 * width * np.cos(theta)
y = 0.5 * height * np.sin(theta)

rtheta = np.radians(angle)
R = np.array([
    [np.cos(rtheta), -np.sin(rtheta)],
    [np.sin(rtheta),  np.cos(rtheta)],
    ])

x, y = np.dot(R, [x, y])
x += xcenter
y += ycenter

Gerar Elipse usando Aproximação Poligonal

Nesta etapa, geraremos a elipse usando uma aproximação poligonal.

theta = np.deg2rad(np.arange(0.0, 360.0, 1.0))
x = 0.5 * width * np.cos(theta)
y = 0.5 * height * np.sin(theta)

rtheta = np.radians(angle)
R = np.array([
    [np.cos(rtheta), -np.sin(rtheta)],
    [np.sin(rtheta),  np.cos(rtheta)],
    ])

x, y = np.dot(R, [x, y])
x += xcenter
y += ycenter

Plotar Elipse usando Arcos

Nesta etapa, plotaremos a elipse usando arcos.

fig = plt.figure()
ax = fig.add_subplot(211, aspect='auto')
ax.fill(x, y, alpha=0.2, facecolor='yellow',
        edgecolor='yellow', linewidth=1, zorder=1)

e1 = patches.Arc((xcenter, ycenter), width, height,
                 angle=angle, linewidth=2, fill=False, zorder=2)

ax.add_patch(e1)

Plotar Elipse usando Aproximação Poligonal

Nesta etapa, plotaremos a elipse usando uma aproximação poligonal.

ax = fig.add_subplot(212, aspect='equal')
ax.fill(x, y, alpha=0.2, facecolor='green', edgecolor='green', zorder=1)
e2 = patches.Arc((xcenter, ycenter), width, height,
                 angle=angle, linewidth=2, fill=False, zorder=2)

ax.add_patch(e2)
fig.savefig('arc_compare')

plt.show()

Resumo

Neste laboratório, você aprendeu como comparar a elipse gerada com arcos versus uma aproximação poligonal usando Python Matplotlib. Você aprendeu como definir os parâmetros da elipse, gerar elipses usando arcos e uma aproximação poligonal, e plotá-las usando Matplotlib.