Ultimas do CanalQb

Python - Usando Turtle - Animando um Girassol

Python - Usando Turtle - Animando um Girassol
Canal Qb

Este é um exemplo de um código em Python usando a biblioteca Turtle para desenhar um girassol na tela. O código cria uma tartaruga chamada "caneta", define sua forma e cor, e configura sua velocidade para 0 (máxima). Em seguida, define a função "desenhar_girassol" que recebe como parâmetros a tartaruga, o número de sementes, o número de pétalas, o ângulo e a dispersão.

A função desenha o girassol preenchendo o fundo com a cor laranja e desenhando as sementes e as pétalas de acordo com os parâmetros fornecidos. A função "desenhar_petala" é usada para desenhar cada pétala individualmente.

Por fim, a função "desenhar_girassol" é chamada com os parâmetros específicos para desenhar o girassol completo, que é então ocultado usando o método "hideturtle()".

Alguns comandos utilizados neste código incluem:

turtle.title("Desenhar Girassol"): define o título da janela da Turtle
caneta = turtle.Turtle(): cria uma nova tartaruga com o nome "caneta"
caneta.shape("turtle"): define a forma da tartaruga como "turtle"
caneta.color("black"): define a cor da tartaruga como "preto"
caneta.speed(0): define a velocidade da tartaruga como 0 (máxima)
def desenhar_girassol(t, numsementes, numpetalas, angulo, espalahar): define a função para desenhar o girassol com os parâmetros especificados
t.fillcolor("orange"): preenche a cor de fundo com laranja
val_pi = angulo * (math.pi / 180.0): converte o ângulo de graus para radianos
for i in range (numsementes + numpetalas): um loop para desenhar as sementes e as pétalas
t.stamp(): desenha uma semente na posição atual da tartaruga
desenhar_petala(t): chama a função para desenhar uma pétala
def desenhar_petala(t): define a função para desenhar uma pétala individualmente
t.begin_fill(): começa a preencher a forma com a cor definida
t.forward(70): move a tartaruga para frente em 70 unidades
t.left(40): vira a tartaruga para a esquerda em 40 graus
t.end_fill(): termina de preencher a forma com a cor definida
desenhar_girassol(caneta, 160, 40, 137.508, 4): chama a função para desenhar o girassol com os parâmetros especificados
caneta.hideturtle(): oculta a tartaruga depois de desenhar o girassol completo. 

Segue abaixo um exemplo de como fazer isso: 
import turtle
import math

turtle.title("Desenhar Girassol")
caneta = turtle.Turtle()
caneta.shape("turtle")
caneta.color("black")
caneta.speed(0)

def desenhar_girassol(t, numsementes, numpetalas, angulo, espalahar):
    t.fillcolor("orange")
    val_pi = angulo * (math.pi / 180.0)
    for i in range (numsementes + numpetalas):
        r = espalahar * math.sqrt(i)
        teta = i * val_pi
        x = r * math.cos(teta)
        y = r * math.sin(teta)
        t.penup()
        t.goto(x, y)
        t.setheading(i * angulo)
        t.pendown()
        if i < numsementes:
            t.stamp()
        else:
            desenhar_petala(t)

def desenhar_petala(t):
    t.fillcolor("yellow")
    t.begin_fill()
    t.right(20)
    t.forward(70)
    t.left(40)
    t.forward(70)
    t.left(140)
    t.forward(70)
    t.left(40)
    t.forward(70)
    t.end_fill()

# Função para animar as pétalas do girassol
def animar_petalas(t, num_animacoes):
    for i in range(num_animacoes):
        t.clear()  # Apaga o desenho anterior
        desenhar_girassol(t, 160, 40, 137.508, 4)
        t.right(10)  # Rotaciona a tartaruga
        turtle.update()  # Atualiza a janela gráfica

desenhar_girassol(caneta, 160, 40, 137.508, 4)
caneta.hideturtle()
animar_petalas(caneta, 100)
Nesse exemplo, a função animar_petalas é responsável por animar as pétalas do girassol. Ela recebe como parâmetros a tartaruga a ser animada (t) e o número de animações a serem feitas (num_animacoes). A cada iteração do loop, a função apaga o desenho anterior com o método .clear(), desenha o girassol novamente com a função desenhar_girassol e rotaciona a tartaruga com o método .right(). Após cada iteração, a janela gráfica é atualizada com o método .update().

Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.