Python e módulo Turtle Graphics

Python Turtle Graphics

Neste post vamos aprender a fazer desenhos simples usando a linguagem de programação Python e módulo Turtle Graphics. O Turtle Graphics foi desenvolvido com o objetivo de ensinar programação de uma forma mais fácil e amigável.

Será utilizado o Python 3.8.10 para executar os nossos códigos.

Para usar o Turtle Graphics precismos importar o módulo turtle e em seguida instanciar um objeto Screen, como mostrado abaixo:

import turtle
s = turtle.Screen()

Executando essas linhas de código será possível notar que vai aparecer uma nova janela com o fundo o branco, onde será a região onde serão feitos nossos desenhos.

Para começar a desenhar precisamos adicionar tartarugas em nossa folha, e para cada uma inserir instruções indicando o que cada uma deve fazer, se deve abaixar o lápis e desenhar ou levantar a caneta e seguir para um determinado local em nossa folha.

Para iniciar uma tartaruga devemos executar o seguinte comando:

myTurtle = turtle.Turtle()

Para começar a desenhar e para usar os recursos do Turtle Graphics precismos conhecer melhor alguns métodos e classes disponíveis, que vai nos permitir desenhar, na tabela abaixo são apresentados os principais comandos para ser utilizado com o Turtle Graphics.

t.forward (distância)Move a tartaruga para frente
t.left (ângulo)Gira a tartaruga para esquerda de acordo com o ângulo em graus
t.right (ângulo)Gira a tartaruga para esquerda de acordo com o ângulo em graus
t.undo ()Desfaz um movimento
t.goto (x, y)Move a tartaruga para as coordenadas definidas
t.setx (x)Define a primeira coordena como x
t.sety (y)Define a primeira coordena como y
t.circle (raio)Desenha um círculo com o raio indicado
t.circle (raio, ângulo)Desenha apenas um arco
t.dot (diâmetro, cor)Desenha um ponto com diâmetro e cor definidos
t.penup ()Levanta a caneta e não desenha mais quando acontece algum movimento da tartaruga
t.pendown ()Abaixa a caneta e desenha quando a tartaruga se movimenta
t.pensize (largura)Define a espessura da linha da caneta como largura
t.pencolor (cor)Define a cor da caneta.

Com isso já podemos começar a desenhar com o Python e módulo Turtle Graphics.

Desenhando um quadrado

Vamos desenhar um quadrado, com lado 100 pixels, para isso vamos executar o seguinte código:

import turtle
s = turtle.Screen()

myTurtle = turtle.Turtle()

myTurtle.pendown () # Abaixa a caneta para começar a desenhar
myTurtle.forward (100) # Vai 100 pixels para frente
myTurtle.left (90) # Gira  90º
myTurtle.forward (100) # Vai 100 pixels para frente
myTurtle.left (90) # Gira  90º
myTurtle.forward (100) # Vai 100 pixels para frente
myTurtle.left (90) # Gira  90º
myTurtle.forward (100) # Vai 100 pixels para frente
myTurtle.left (90) # Gira  90º

myTurtle.screen.mainloop()

Observem no código acima que foram utilizados as mesmas linhas, ou os mesmos comandos 4 vezes, podemos utilizar um laço for para desenhar o quadrado e deixar o nosso código mais elegante, como mostrado abaixo:

import turtle
s = turtle.Screen()

myTurtle = turtle.Turtle()

myTurtle.pendown () # Abaixa a caneta para começar a desenhar

for i in range (0, 4):
	myTurtle.forward (100) # Vai 100 pixels para frente
	myTurtle.left (90) # Gira  90º


myTurtle.screen.mainloop()

Abaixo é mostrado o desenho obtido com módulo Turtle Graphics.

Desenho de uma quadrado com python

Até agora foi feito um desenho bem simples, de um quadrado, vamos tentar fazer algo um pouco mais complexo, e ao invés de usar apenas uma tartaruga, vamos criar várias tartarugas e tentar fazer um desenho um pouco mais complexo.

Desenhando vários quadrados com Python e módulo Turtle Graphics

Para este exemplo vamos usar um comando que não está especificado na tabela de comandos do módulo Turtle Graphics, que é comando myTurtle.setheading (ângulo), que define a orientação inicial da tartaruga.

Com isso vamos desenhar vários quadrados e fazer uma chamada de todas as tartarugas, como mostrado no código abaixo:

import turtle
s = turtle.Screen()

myTurtle_A = turtle.Turtle()
myTurtle_B = turtle.Turtle()
myTurtle_C = turtle.Turtle()
myTurtle_D = turtle.Turtle()

myTurtle_A.setheading(0)
myTurtle_B.setheading(45)
myTurtle_C.setheading(90)
myTurtle_D.setheading(135)


myTurtle_A.pendown () # Abaixa a caneta para começar a desenhar
myTurtle_B.pendown () # Abaixa a caneta para começar a desenhar
myTurtle_C.pendown () # Abaixa a caneta para começar a desenhar
myTurtle_D.pendown () # Abaixa a caneta para começar a desenhar

for i in range (0, 4):
	myTurtle_A.forward (100) # Vai 100 pixels para frente
	myTurtle_A.left (90) # Gira  90º

for i in range (0, 4):
	myTurtle_B.forward (100) # Vai 100 pixels para frente
	myTurtle_B.left (90) # Gira  90º
	
for i in range (0, 4):
	myTurtle_C.forward (100) # Vai 100 pixels para frente
	myTurtle_C.left (90) # Gira  90º
	
for i in range (0, 4):
	myTurtle_D.forward (100) # Vai 100 pixels para frente
	myTurtle_D.left (90) # Gira  90º

myTurtle_D.screen.mainloop()

O resultado obtido é mostrado na figura abaixo:

Desenhando vários quadrados com turtles

Podemos fazer outros desenhos, usar cores e muito mais apenas com comandos python e módulo Turtle Graphics. O objetivo foi apresentar uma introdução e com um pouco de tempo e paciência é possível fazer muitas coisas usando python, e se divertir aprendendo a programar.

Referências bibliográficas:

Perkovic, Ljubomir
Introdução à computação usando Python: um foco no desenvolvimento de aplicações / Ljubomir Perkovic; tradução Daniel Vieira. – 1: ed. – Rio de Janeiro: LTC, 2016 il, 28 cm.