Biblioteca Turtle para Gráficos Básicos em Python

A biblioteca turtle é uma ferramenta padrão do Python para criar gráficos simples. Ela permite desenhar formas geométricas controlando uma "tartaruga virtual" que se move sobre uma tela, deixando um rastro visual. Vamos explorar seus conceitos e funções essenciais.

O sistema de desenho da tartaruga opera com uma tartaruga imaginária posicionada no centro da tela. Conforme ela se move, seu caminho é plotado na interface gráfica. É possível personalizar cores, espessura do traço e outras propriedades durante o processo.

Para definir a janela de desenho, utiliza-se a função turtle.setup(largura, altura, x, y). Os parâmetros largura e altura podem ser em pixels ou como fração da tela. Os valores x e y determinam a posição da janela no monitor; se omitidos, a janela será centralizada. A unidade mínima de medida é o pixel.

Dentro da janela, existem dois sistemas de coordenadas. O sistema absoluto considera o centro da tela como a origem (0,0). A função turtle.goto(x, y) move a tartaruga para coordenadas absolutas sem alterar sua direção. O sistema relativo à tartaruga usa funções como turtle.forward(distância) para avançar e turtle.backward(distância) para recuar. A função turtle.circle(raio, ângulo) desenha um arco circular a partir da posição atual.

A direção da tartaruga é controlada por ângulos. No sistema absoluto, o eixo x positivo corresponde a 0 graus. A função turtle.seth(ângulo) define a direção sem mover. Para ajustes relativos, use turtle.left(ângulo) ou turtle.right(ângulo).

Cores são especificadas no sistema RGB. Valores podem ser inteiros (0-255) ou decimais (0-1). Para alternar entre modos, empregue turtle.colormode(1.0) ou turtle.colormode(255). Funções como turtle.pencolor() e turtle.fillcolor() controlam a cor do traço e o preenchimento, respectivamente. O fundo da tela é alterado com turtle.bgcolor().

Funções comuns incluem turtle.penup() e turtle.pendown() para controlar o desenho durante o movimento, e turtle.pensize(largura) para ajustar a espessura. Parâmetros definidos permanecem ativos até serem modificados.

Abaixo estão exemplos de desenhos, com código reestruturado para demonstrar diferentes abordagens.

Exemplo 1: Quadrado


import turtle as tartaruga
tartaruga.speed(3)
largura = 120
for lado in range(4):
    tartaruga.forward(largura)
    tartaruga.right(90)
tartaruga.hideturtle()
tartaruga.done()

Exemplo 2: Hexágono Regular


import turtle
config = {'pensize': 3, 'speed': 4}
turtle.pensize(config['pensize'])
turtle.speed(config['speed'])
angulo_exterior = 60
for _ in range(6):
    turtle.forward(100)
    turtle.left(angulo_exterior)
turtle.done()

Exemplo 3: Padrão Rotativo


from turtle import *

def desenhar_petalas(n):
    for i in range(n):
        forward(150)
        left(90)
        circle(150, -45)
        goto(0, 0)
        left(45)

hideturtle()
speed(5)
desenhar_petalas(4)
done()

Exemplo 4: Flor com Preenchmiento


import turtle
tela = turtle.Screen()
tela.bgcolor("white")

caneta = turtle.Turtle()
caneta.color("blue", "yellow")
caneta.begin_fill()

while True:
    caneta.forward(180)
    caneta.left(170)
    posicao = caneta.pos()
    if abs(posicao[0]) < 2 and abs(posicao[1]) < 2:
        break

caneta.end_fill()
turtle.done()

Exemplo 5: Rosa Estilizada


import turtle as desenho

desenho.speed(4)
desenho.penup()
desenho.setpos(0, 180)
desenho.pendown()

# Núcleo da flor
desenho.fillcolor("crimson")
desenho.begin_fill()
desenho.circle(8, 180)
desenho.circle(20, 110)
desenho.left(50)
desenho.circle(55, 40)
desenho.end_fill()

# Pétalas externas
for ang in [150, 180]:
    desenho.left(ang)
    desenho.circle(-70, 65)

desenho.hideturtle()
desenho.done()

Exemplo 6: Árvore com Galhos Aleatórios


import random
import turtle as artista

artista.getscreen().tracer(10, 0)
artista.hideturtle()

def galho(comprimento, caneta):
    if comprimento > 5:
        caneta.forward(comprimento)
        rotacao = 15 * random.random()
        caneta.right(rotacao)
        galho(comprimento - random.randint(10, 20), caneta)
        caneta.left(rotacao * 2)
        galho(comprimento - random.randint(10, 20), caneta)
        caneta.right(rotacao)
        caneta.backward(comprimento)

artista.color("brown")
artista.left(90)
artista.penup()
artista.backward(100)
artista.pendown()
galho(50, artista)
artista.done()

Tags: turtle Python gráficos coordenadas cores RGB

Publicado em 6-25 21:59