Programador Leigo
Projetos 8 min leitura 16 MAR 2026

Como desenhar com Python usando Turtle

Use o módulo Turtle para criar desenhos, formas geométricas e padrões visuais com Python.


O que é o Turtle?

Turtle é um módulo que já vem instalado com Python. Ele abre uma janela gráfica onde você controla uma "tartaruga" que desenha na tela enquanto se move. É uma das formas mais visuais e divertidas de aprender programação.

Pense assim: a tartaruga segura uma caneta. Quando ela anda para frente, desenha uma linha. Você controla para onde ela vai, quando levanta a caneta (para de desenhar) e quando abaixa (volta a desenhar).

Primeiro desenho

Vamos começar com um quadrado simples:

import turtle

tela = turtle.Screen()
tela.bgcolor("black")
tela.title("Meu primeiro desenho")

t = turtle.Turtle()
t.color("white")
t.speed(3)

# Desenhar um quadrado
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)

turtle.done()
  • forward(100) — anda 100 pixels para frente
  • left(90) — gira 90 graus para a esquerda
  • turtle.done() — mantém a janela aberta

Usando loops para simplificar

Um quadrado tem 4 lados iguais. Em vez de repetir o código, usamos um for:

import turtle

t = turtle.Turtle()
t.color("cyan")
t.speed(3)

for _ in range(4):
    t.forward(100)
    t.left(90)

turtle.done()

E um triângulo? Basta mudar o número de lados e o ângulo:

for _ in range(3):
    t.forward(100)
    t.left(120)   # 360 / 3 = 120 graus

A fórmula é: ângulo = 360 / número de lados. Funciona para qualquer polígono regular.

Desenhando um círculo e uma estrela

O Turtle tem um método pronto para círculos:

t.circle(80)   # circulo com raio de 80 pixels

Para uma estrela de 5 pontas, usamos o ângulo de 144 graus:

import turtle

t = turtle.Turtle()
t.color("yellow")
t.speed(3)

for _ in range(5):
    t.forward(150)
    t.right(144)

turtle.done()

Por que 144 graus? Uma estrela de 5 pontas precisa de 2 voltas completas (720 graus) divididas por 5 pontas: 720 / 5 = 144.

Cores e preenchimento

Podemos preencher formas com cor:

import turtle

t = turtle.Turtle()
t.speed(5)

t.fillcolor("red")
t.begin_fill()

for _ in range(5):
    t.forward(150)
    t.right(144)

t.end_fill()

turtle.done()

Tudo que for desenhado entre begin_fill() e end_fill() será preenchido com a cor definida em fillcolor().

Criando padrões com loops

Aqui a magia acontece. Combinando loops e rotações, criamos padrões complexos com poucas linhas:

import turtle

tela = turtle.Screen()
tela.bgcolor("black")

t = turtle.Turtle()
t.speed(0)  # velocidade maxima

cores = ["red", "orange", "yellow", "green", "cyan", "blue", "purple"]

for i in range(100):
    t.color(cores[i % len(cores)])
    t.forward(i * 2)
    t.left(91)

turtle.done()

Esse código cria uma espiral quadrada colorida. O truque é o ângulo de 91 graus — não é exatamente 90, então cada volta fica levemente deslocada, criando o padrão espiral.

O i % len(cores) alterna entre as cores da lista automaticamente.

Padrão espiral criado com loops no Turtle

Espiral circular

Outra variação bonita:

import turtle

tela = turtle.Screen()
tela.bgcolor("black")

t = turtle.Turtle()
t.speed(0)

for i in range(200):
    t.color(f"#{i % 256:02x}{(i * 2) % 256:02x}{(255 - i) % 256:02x}")
    t.circle(i / 2)
    t.left(10)

turtle.done()

Esse código gera cores dinamicamente usando formato hexadecimal RGB. Cada círculo tem um raio diferente e uma rotação, criando uma espiral circular.

Espiral circular colorida com Turtle

Função para desenhar qualquer polígono

Vamos criar uma função reutilizável:

import turtle


def poligono(t, lados, tamanho, cor):
    t.color(cor)
    angulo = 360 / lados

    t.begin_fill()
    for _ in range(lados):
        t.forward(tamanho)
        t.left(angulo)
    t.end_fill()


tela = turtle.Screen()
tela.bgcolor("black")

t = turtle.Turtle()
t.speed(3)

# Triangulo
t.penup()
t.goto(-200, 0)
t.pendown()
poligono(t, 3, 80, "red")

# Quadrado
t.penup()
t.goto(-50, 0)
t.pendown()
poligono(t, 4, 80, "green")

# Hexagono
t.penup()
t.goto(100, 0)
t.pendown()
poligono(t, 6, 50, "blue")

turtle.done()

Novos comandos:

  • penup() — levanta a caneta (para de desenhar)
  • pendown() — abaixa a caneta (volta a desenhar)
  • goto(x, y) — move a tartaruga para uma posição específica

Polígonos desenhados com função reutilizável no Turtle

Comandos mais usados

Comando O que faz
forward(n) Anda n pixels para frente
backward(n) Anda n pixels para trás
left(graus) Gira para a esquerda
right(graus) Gira para a direita
circle(raio) Desenha um círculo
penup() Para de desenhar
pendown() Volta a desenhar
goto(x, y) Move para a posição
color("cor") Muda a cor da linha
fillcolor("cor") Muda a cor de preenchimento
speed(n) Velocidade (0=máxima, 1=lenta, 10=rápida)
hideturtle() Esconde a tartaruga

Dicas para ir além

  • Desenho livre: use turtle.onscreenclick() para desenhar onde o usuário clicar
  • Animações: combine time.sleep() com movimento para criar animações simples
  • Fractais: pesquise "fractal tree python turtle" — é surpreendentemente simples

Conclusão

O Turtle transforma código em arte visual. É uma forma excelente de entender loops, funções e geometria ao mesmo tempo. No último artigo desta trilha, vamos criar uma lista de tarefas completa no terminal.

Continue lendo

Compartilhar