Tangram em Código
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 plt | Importa a biblioteca Matplotlib, usada para criar gráficos e figuras. |
| import numpy as np | Importa 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]