Utilizando o Módulo Turtle do Python para Desenhar a Arte LILOU

O módulo turtle do Python, integrado à biblioteca padrão, permite criar gráficos vetoriais interativos através de um cursor virtual. Vamos aplicá-lo para gerar a arte de letras "LILOU", combinando movimentos precisos e cálculos matemáticos para formar um design visual atrativo.

Para iniciar, importamos as bibliotecsa necessárias e instanciamos o objeto de desenho:

import turtle
import math

# Configuração inicial do pincel
caneta = turtle.Turtle()
caneta.speed(2)

A primeira etapa envolve desenhar uma forma de fundo em veremlho. Utilizamos comandos como penup() e pendown() para controlar o traço, e rotações com left() e right() associadas a avanços (forward()) para criar ângulos específicos. O preenchimento é gerenciado por begin_fill() e end_fill().

caneta.penup()
caneta.goto(0, 150)
caneta.pendown()
caneta.color('red')
caneta.begin_fill()
caneta.fillcolor('red')

# Construção da forma de fundo
caneta.left(45)
caneta.forward(150)
caneta.right(45)
caneta.forward(100)
# ... sequência adicional de movimentos
caneta.end_fill()

Depois, aidcionamos as letras "LILOU" em branco sobre o fundo. Cada caractere é construído isoladamente, ajustando a posição da caneta e a espessura do traço. Por exemplo, para a letra "L":

caneta.penup()
caneta.goto(-10, 0)
caneta.pencolor('white')
caneta.pensize(10)
caneta.pendown()
caneta.goto(-50, 0)
caneta.goto(-50, 80)
caneta.penup()

Procedimentos análogos são aplicados para as demais letras ("I", "L", "O", "U"), empregando cálculos trigonométricos e coordenadas para garantir alinhamento. O código completo a seguir integra todas as operações:

import turtle
import math

def construir_fundo(pincel):
    """Desenha a forma vermelha de fundo."""
    pincel.penup()
    pincel.goto(0, 150)
    pincel.pendown()
    pincel.color('red')
    pincel.begin_fill()
    pincel.fillcolor('red')
    pincel.left(45)
    pincel.forward(150)
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(250 + math.sqrt(2) * 100)
    pincel.right(90)
    pincel.forward(250 + 100 * math.sqrt(2))
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(100)
    pincel.right(45)
    pincel.forward(150)
    pincel.end_fill()

def construir_letras(pincel):
    """Desenha as letras LILOU em branco."""
    pincel.penup()
    pincel.goto(-10, 0)
    pincel.pencolor('white')
    # Letra L
    pincel.pensize(10)
    pincel.pendown()
    pincel.goto(-50, 0)
    pincel.goto(-50, 80)
    pincel.penup()
    # Letra I
    pincel.goto(-100, 0)
    pincel.pendown()
    pincel.goto(-160, 0)
    pincel.goto(-130, 0)
    pincel.goto(-130, 80)
    pincel.goto(-160, 80)
    pincel.goto(-100, 80)
    pincel.penup()
    # Letra L novamente
    pincel.goto(10, 25)
    pincel.pendown()
    pincel.right(45)
    pincel.circle(25, extent=180)
    pincel.goto(60, 55)
    pincel.circle(25, extent=180)
    pincel.goto(10, 25)
    pincel.penup()
    # Letra O
    pincel.goto(75, 80)
    pincel.pendown()
    pincel.goto(100, 0)
    pincel.goto(125, 80)
    pincel.penup()
    # Letra U
    pincel.goto(180, 80)
    pincel.pendown()
    pincel.goto(140, 80)
    pincel.goto(140, 0)
    pincel.goto(180, 0)
    pincel.penup()
    pincel.goto(180, 40)
    pincel.pendown()
    pincel.goto(140, 40)
    pincel.penup()
    pincel.goto(-40, -30)
    pincel.pendown()
    pincel.goto(-40, -80)
    pincel.circle(40, extent=180)
    pincel.goto(40, -30)
    pincel.hideturtle()

# Execução principal
tela = turtle.Screen()
tela.title("Arte LILOU")
pincel = turtle.Turtle()
construir_fundo(pincel)
construir_letras(pincel)
turtle.mainloop()

Tags: Python Turtle module Graphics Drawing Mathematics

Publicado em 6-23 21:33