fevereiro 17, 2026

Tangram em Código

Por admin

Sobre a Matemática

Tangram é um antigo jogo chinês formado por sete polígonos com os quais podem ser construídas figuras variadas.

Sobre o Código

Na linguagem de programação Python,

import – é o comando usado para trazer bibliotecas externas ou módulos para dentro do código. Biblioteca, por sua vez, é um conjunto de códigos prontos que oferecem funções e ferramentas para resolver problemas específicos, sem precisar programar tudo do zero.

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, semelhante ao MATLAB.

as plt – define um apelido (alias) para o módulo importado, permitindo chamá-lo como plt em vez de matplotlib.pyplot.

numpy – é a biblioteca para cálculos numéricos e manipulação de arrays multidimensionais.

plt.subplots() – cria uma figura (fig) e um ou mais eixos (ax) para desenhar gráficos.

figsize=() – é o argumento de plt.subplots() que define o tamanho da figura em polegadas (largura, altura).

np.array([]) – cria um array NumPy, usado aqui para armazenar coordenadas dos vértices dos polígonos. Array, por sua vez, é a estrutura de dados que armazena uma coleção de valores (números, strings etc.) em uma única variável. No NumPy, arrays permitem operações matemáticas eficientes sobre grandes conjuntos de dados.

'cor' – é a string que define a cor usada para desenhar ou preencher uma forma (ex.: ‘blue’, ‘red’).

for...in... – é a estrutura de repetição (loop) que percorre elementos de uma lista ou coleção.

ax.plot() – é a função que desenha linhas (bordas) no gráfico, conectando pontos definidos.

shape[] – é o array que contém coordenadas (x, y) de uma peça geométrica.

linewidth= – é o parâmetro que define a espessura da linha desenhada.

color= – é o parâmetro que define a cor da linha ou preenchimento.

ax.fill() – é a função que preenche o interior de uma forma com cor e transparência.

alpha= – define a transparência da cor (0 = totalmente transparente, 1 = opaco).

ax.set_xlim() – define os limites do eixo X (horizontal).

ax.set_ylim() – define os limites do eixo Y (vertical).

ax.set_aspect() – define a proporção dos eixos (ex.: ‘equal’ mantém escala igual em X e Y).

ax.grid() – adiciona uma grade ao gráfico para facilitar a visualização.

ax.set_title() – define o título exibido no gráfico.

plt.show() – exibe a figura criada 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

# Criar figura
fig, ax = plt.subplots(1, 1, figsize=(8, 8))

# Definir as coordenadas das 7 peças do Tangram
# 1. Triângulo grande (inferior esquerdo)
triangle_large1 = np.array([[0, 0], [2, 0], [1, 1]])
# 2. Triângulo grande (superior direito)
triangle_large2 = np.array([[2, 0], [4, 0], [4, 2]])
# 3. Triângulo médio
triangle_medium = np.array([[1, 1], [2, 2], [3, 1]])
# 4. Triângulo pequeno (inferior direito)
triangle_small1 = np.array([[2, 0], [3, 1], [2, 2]])
# 5. Triângulo pequeno (superior esquerdo)
triangle_small2 = np.array([[0, 2], [1, 1], [2, 2]])
# 6. Quadrado
square = np.array([[2, 2], [3, 3], [4, 2], [3, 1]])
# 7. Paralelogramo
parallelogram = np.array([[0, 2], [1, 3], [2, 2], [1, 1]])

# Lista de peças e cores
pieces = [
    (triangle_large1, 'blue'),
    (triangle_large2, 'green'),
    (triangle_medium, 'red'),
    (triangle_small1, 'purple'),
    (triangle_small2, 'orange'),
    (square, 'cyan'),
    (parallelogram, 'magenta')
]

# Desenhar todas as peças
for shape, color in pieces:
    ax.plot(shape[:, 0], shape[:, 1], '-', linewidth=2, color=color)
    ax.fill(shape[:, 0], shape[:, 1], alpha=0.4, color=color)

# Configurações do gráfico
ax.set_xlim(-1, 5)
ax.set_ylim(-1, 5)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
ax.set_title('Tangram - Todas as Peças')

plt.show()
Código Python (.py)O que faz
import matplotlib.pyplot as pltImporta a biblioteca Matplotlib, usada para criar gráficos e figuras.
import numpy as npImporta a biblioteca NumPy, usada para manipular arrays numéricos (aqui, coordenadas dos polígonos).
fig, ax = plt.subplots(1, 1, figsize=(8, 8))Cria uma figura (fig) e um eixo (ax) para desenhar, com tamanho 8×8.
triangle_large1 = np.array([[0, 0], [2, 0], [1, 1]])Define os vértices do primeiro triângulo grande (inferior esquerdo).
triangle_large2 = np.array([[2, 0], [4, 0], [4, 2]])Define os vértices do segundo triângulo grande (superior direito).
triangle_medium = np.array([[1, 1], [2, 2], [3, 1]])Define os vértices do triângulo médio.
triangle_small1 = np.array([[2, 0], [3, 1], [2, 2]])Define os vértices do primeiro triângulo pequeno (inferior direito).
triangle_small2 = np.array([[0, 2], [1, 1], [2, 2]])Define os vértices do segundo triângulo pequeno (superior esquerdo).
square = np.array([[2, 2], [3, 3], [4, 2], [3, 1]])Define os vértices do quadrado.
parallelogram = np.array([[0, 2], [1, 3], [2, 2], [1, 1]])Define os vértices do paralelogramo.
pieces = […]Cria uma lista com todas as peças e suas cores correspondentes.
for shape, color in pieces:Inicia um loop para desenhar cada peça da lista.
ax.plot(shape[:, 0], shape[:, 1], ‘-‘, linewidth=2, color=color)Desenha as bordas da peça com a cor definida.
ax.fill(shape[:, 0], shape[:, 1], alpha=0.4, color=color)Preenche o interior da peça com a cor definida e transparência (alpha=0.4).
ax.set_xlim(-1, 5)Define o limite do eixo X (horizontal) de -1 até 5.
ax.set_ylim(-1, 5)Define o limite do eixo Y (vertical) de -1 até 5.
ax.set_aspect(‘equal’)Garante que os eixos tenham a mesma escala (formas não ficam distorcidas).
ax.grid(True, alpha=0.3)Adiciona uma grade leve ao gráfico.
ax.set_title(‘Tangram – Todas as Peças’)Define o título do gráfico.
plt.show()Exibe a figura com todas as peças desenhadas.

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]