Ângulos Obtuso e Raso em Código
Sobre a Matemática
Ângulo obtuso é quando admitimos que uma região angular de ângulo reto como subconjunto e for subconjunto próprio de 1 semi-plano. Sua medida é maior que 1 reto e menor que 2 retos.
Ângulo raso é quando seus lados são semi-retas opostas de mesma origem. Equivale a 2 retos.
Ângulo de 1 volta é aquele que equivale a 4 retos. Seus lados são semi-retas coincidentes e a sua região angular é um plano.
Sobre o Código
Na linguagem de programação Python,
import – é o comando usado para trazer bibliotecas externas para o código.
matplotlib – é a biblioteca para criação de gráficos e visualizações.
.pyplot – é o módulo dentro do Matplotlib que fornece funções para criar gráficos de forma simples.
as plt – define um apelido para pyplot, permitindo chamar funções como plt.funcao().
numpy – é a biblioteca para cálculos numéricos e manipulação de arrays.
as np – define um apelido para numpy, permitindo chamar funções como np.funcao().
def – é a palavra-chave usada para definir uma função.
.cos() – é a função do NumPy que calcula o cosseno de um ângulo (em radianos).
.radians() – converte graus em radianos (necessário para funções trigonométricas).
.sin() – é a função do NumPy que calcula o seno de um ângulo (em radianos).
angle_deg – é a variável que armazena o valor do ângulo em graus.
.arrow() – é a função do Matplotlib que desenha uma seta em um gráfico.
origin[] – é a lista que define o ponto de origem das semi-retas (ex.: [0,0]).
head_width= – define a largura da ponta da seta no gráfico.
head_length= – define o comprimento da ponta da seta no gráfico.
fc= – é “Face color”: cor de preenchimento da seta.
ec= – é “Edge color”: cor da borda da seta.
.linspace() – é a função do NumPy que gera pontos igualmente espaçados em um intervalo.
.fill() – é a função do Matplotlib que preenche uma área delimitada por coordenadas.
color= – define a cor usada para desenhar ou preencher elementos gráficos.
alpha= – define a transparência (0 = invisível, 1 = opaco).
.set_xlim() – define os limites do eixo X no gráfico.
.set_ylim() – define os limites do eixo Y no gráfico.
.set_aspect() – define a proporção dos eixos (ex.: ‘equal’ mantém escala igual).
'equal' – é o valor que garante que os eixos X e Y tenham a mesma escala.
.set_title() – define o título do gráfico.
.grid() – adiciona uma grade ao gráfico.
.subplots() – cria múltiplos gráficos (subplots) dentro de uma mesma figura.
figsize= – define o tamanho da figura em polegadas (largura x altura).
axs[] – é a lista de eixos (subplots) criados pela função subplots().
.tight_layout() – ajusta automaticamente o espaçamento entre os subplots.
.show() – exibe o gráfico na tela.
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código…
import matplotlib.pyplot as plt
import numpy as np
def plot_angle(ax, angle_deg, color, title):
# Define origem
origin = [0, 0]
# Semi-retas
x1 = np.cos(np.radians(0))
y1 = np.sin(np.radians(0))
x2 = np.cos(np.radians(angle_deg))
y2 = np.sin(np.radians(angle_deg))
# Desenha semi-retas
ax.arrow(origin[0], origin[1], x1, y1, head_width=0.05, head_length=0.1, fc=color, ec=color)
ax.arrow(origin[0], origin[1], x2, y2, head_width=0.05, head_length=0.1, fc=color, ec=color)
# Preenche região angular
theta = np.linspace(0, np.radians(angle_deg), 100)
ax.fill(np.cos(theta), np.sin(theta), color=color, alpha=0.3)
# Configurações do gráfico
ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
ax.set_aspect('equal')
ax.set_title(title)
ax.grid(True)| Código Python (.py) | O que faz |
| import matplotlib.pyplot as plt | Importa a biblioteca Matplotlib para criar gráficos. |
| import numpy as np | Importa a biblioteca NumPy para cálculos matemáticos, como seno e cosseno. |
| def plot_angle(ax, angle_deg, color, title): | Define uma função chamada plot_angle que desenha um ângulo em um eixo (ax). |
| origin = [0, 0] | Define a origem (ponto inicial das semi-retas) como coordenada (0,0). |
| x1 = np.cos(np.radians(0)) | Calcula a coordenada x da primeira semi-reta (ângulo 0°). |
| y1 = np.sin(np.radians(0)) | Calcula a coordenada y da primeira semi-reta (ângulo 0°). |
| x2 = np.cos(np.radians(angle_deg)) | Calcula a coordenada x da segunda semi-reta, com base no ângulo desejado. |
| y2 = np.sin(np.radians(angle_deg)) | Calcula a coordenada y da segunda semi-reta, com base no ângulo desejado. |
| ax.arrow(origin[0], origin[1], x1, y1, head_width=0.05, head_length=0.1, fc=color, ec=color) | Desenha a primeira semi-reta como uma seta partindo da origem. |
| ax.arrow(origin[0], origin[1], x2, y2, head_width=0.05, head_length=0.1, fc=color, ec=color) | Desenha a segunda semi-reta como uma seta partindo da origem. |
| theta = np.linspace(0, np.radians(angle_deg), 100) | Cria 100 pontos entre 0 e o ângulo em radianos para preencher a região angular. |
| ax.fill(np.cos(theta), np.sin(theta), color=color, alpha=0.3) | Preenche a área entre as semi-retas com uma cor translúcida. |
| ax.set_xlim(-1.5, 1.5) | Define os limites do eixo X para melhor visualização. |
| ax.set_ylim(-1.5, 1.5) | Define os limites do eixo Y para melhor visualização. |
| ax.set_aspect(‘equal’) | Mantém a proporção dos eixos igual (círculos não ficam achatados). |
| ax.set_title(title) | Define o título do gráfico (ex.: “Ângulo Obtuso”). |
| ax.grid(True) | Adiciona uma grade ao gráfico para facilitar a leitura. |
# Cria subplots
fig, axs = plt.subplots(1, 3, figsize=(15, 5))
# Ângulo obtuso (120°)
plot_angle(axs[0], 120, 'blue', 'Ângulo Obtuso (120°)')
# Ângulo raso (180°)
plot_angle(axs[1], 180, 'green', 'Ângulo Raso (180°)')
# Ângulo de 1 volta (360°)
plot_angle(axs[2], 360, 'red', 'Ângulo de 1 Volta (360°)')
plt.tight_layout()
plt.show()| Código Python (.py) | O que faz |
| fig, axs = plt.subplots(1, 3, figsize=(15, 5)) | Cria uma figura com 3 subplots (gráficos lado a lado). |
| plot_angle(axs[0], 120, ‘blue’, ‘Ângulo Obtuso (120°)’) | Desenha o ângulo obtuso (120°) em azul no primeiro gráfico. |
| plot_angle(axs[1], 180, ‘green’, ‘Ângulo Raso (180°)’) | Desenha o ângulo raso (180°) em verde no segundo gráfico. |
| plot_angle(axs[2], 360, ‘red’, ‘Ângulo de 1 Volta (360°)’) | Desenha o ângulo de 1 volta (360°) em vermelho no terceiro gráfico. |
| plt.tight_layout() | Ajusta automaticamente o espaçamento entre os gráficos. |
| plt.show() | Exibe os gráficos na tela. |
Saída do código (valor de retorno)…

Fonte:
- Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
- Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
- https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]