Transferidor em Código
Sobre a Matemática
Transferidor é um instrumento de desenho que serve para medir ângulos.
Sobre o Código
Na linguagem de programação Python,
import – é a palavra-chave usada para carregar bibliotecas externas no programa.
matplotlib – é a biblioteca para criação de gráficos e visualizações.
.pyplot – é o submódulo do matplotlib que fornece funções para criar gráficos de forma simples.
as plt – define um apelido (plt) para o módulo importado, facilitando o uso.
numpy – é a biblioteca para cálculos numéricos e operações com arrays.
as np – define um apelido (np) para o módulo numpy.
def – é a palavra-chave usada para definir uma função.
.subplots() – é a função do matplotlib que cria uma figura e eixos para desenhar gráficos.
figsize= – é o parâmetro que define o tamanho da figura (largura x altura).
.Circle() – é a função do matplotlib para desenhar um círculo.
fill= – é o parâmetro que indica se o círculo deve ser preenchido (True) ou apenas contorno (False).
color= – define a cor de um elemento gráfico.
.add_artist() – adiciona um objeto gráfico (como círculo) ao eixo do gráfico.
for...in... – é a estrutura de repetição (loop) que percorre uma sequência de valores.
range() – é a função que gera uma sequência de números (ex.: de 0 a 180).
.radians() – converte graus em radianos (necessário para cálculos trigonométricos).
.cos() – é a função cosseno, que retorna a coordenada x de um ângulo em radianos.
.sin() – é a função seno, que retorna a coordenada y de um ângulo em radianos.
.plot() – é a função do matplotlib para desenhar linhas ou pontos no gráfico.
linewidth= – define a espessura da linha desenhada.
.text() – adiciona texto em uma posição específica do gráfico.
str() – é a função que converte valores em texto (string).
fontsize= – define o tamanho da fonte do texto.
ha= – de “Horizontal alignment”, é o alinhamento horizontal do texto (left, center, right).
va= – de “Vertical alignment”, é o alinhamento vertical do texto (top, center, bottom).
label= – define o rótulo de um elemento gráfico para aparecer na legenda.
f"{}" – é a forma de inserir valores dentro de uma string usando {} (f-string).
ax.set_xlim() – define os limites do eixo x no gráfico.
.set_ylim() – define os limites do eixo y no gráfico.
.set_aspect() – ajusta a proporção dos eixos (ex.: equal para manter círculo perfeito).
.axis() – controla a exibição dos eixos (ex.: off para ocultar).
.legend() – exibe a legenda dos elementos gráficos.
.title() – define o título do gráfico.
.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 desenhar_transferidor(angulo):
fig, ax = plt.subplots(figsize=(6,6))
# Desenhar círculo do transferidor
circulo = plt.Circle((0,0), 1, fill=False, color='black')
ax.add_artist(circulo)
# Marcar graus de 0 a 180
for grau in range(0, 181, 10):
rad = np.radians(grau)
x = np.cos(rad)
y = np.sin(rad)
ax.plot([0, x], [0, y], color='gray', linewidth=0.5)
ax.text(1.1*np.cos(rad), 1.1*np.sin(rad), str(grau), fontsize=8, ha='center', va='center')
# Desenhar o ângulo escolhido
rad_angulo = np.radians(angulo)
ax.plot([0, np.cos(rad_angulo)], [0, np.sin(rad_angulo)], color='red', linewidth=2, label=f"{angulo}°")
# Configurações do gráfico
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-0.2, 1.2)
ax.set_aspect('equal')
ax.axis('off')
ax.legend()
plt.title("Transferidor Digital")
plt.show()
# Exemplo: mostrar ângulo de 45°
desenhar_transferidor(45)| Código Python (.py) | O que faz |
| import matplotlib.pyplot as plt | Importa a biblioteca matplotlib para criar gráficos e desenhos. |
| import numpy as np | Importa a biblioteca numpy para cálculos matemáticos, como seno e cosseno. |
| def desenhar_transferidor(angulo): | Define uma função chamada desenhar_transferidor que recebe um ângulo como parâmetro. |
| fig, ax = plt.subplots(figsize=(6,6)) | Cria uma figura (fig) e um eixo (ax) para desenhar, com tamanho 6×6. |
| circulo = plt.Circle((0,0), 1, fill=False, color=’black’) | Cria um círculo com raio 1, centrado em (0,0), sem preenchimento, cor preta. |
| ax.add_artist(circulo) | Adiciona o círculo ao gráfico, representando a borda do transferidor. |
| for grau in range(0, 181, 10): | Inicia um loop para desenhar marcas de graduação de 0° até 180°, de 10 em 10. |
| rad = np.radians(grau) | Converte o valor do grau para radianos (necessário para cálculos trigonométricos). |
| x = np.cos(rad) | Calcula a coordenada x da linha correspondente ao grau. |
| y = np.sin(rad) | Calcula a coordenada y da linha correspondente ao grau. |
| ax.plot([0, x], [0, y], color=’gray’, linewidth=0.5) | Desenha uma linha do centro até a borda do círculo, indicando a marca do grau. |
| ax.text(1.1*np.cos(rad), 1.1 * np.sin(rad), str(grau), fontsize=8, ha=’center’, va=’center’) | Escreve o número do grau próximo à borda do círculo. |
| rad_angulo = np.radians(angulo) | Converte o ângulo escolhido pelo usuário para radianos. |
| ax.plot([0, np.cos(rad_angulo)], [0, np.sin(rad_angulo)], color=’red’, linewidth=2, label=f”{angulo}°”) | Desenha em vermelho a linha que representa o ângulo escolhido. |
| ax.set_xlim(-1.2, 1.2) | Define os limites do eixo x para visualizar bem o transferidor. |
| ax.set_ylim(-0.2, 1.2) | Define os limites do eixo y. |
| ax.set_aspect(‘equal’) | Garante que os eixos tenham a mesma escala (círculo não fica oval). |
| ax.axis(‘off’) | Remove os eixos numéricos do gráfico para parecer um transferidor real. |
| ax.legend() | Adiciona uma legenda mostrando o ângulo destacado. |
| plt.title(“Transferidor Digital”) | Define o título do gráfico. |
| plt.show() | Exibe o gráfico na tela. |
| desenhar_transferidor(45) | Chama a função para desenhar o transferidor com o ângulo de 45°. |
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]