Dibuja un Girasol Amarillo con Python y Turtle

Repo
Blog / Dibuja un Girasol Amarillo co… /
Dibuja un Girasol Amarillo con Python y Turtle

Por: Leonardo Narváez.

En: 5 de Noviembre de 2024 a las 18:00
Girasol GitHub Python Turtle

Introducción

En este tutorial, aprenderemos a dibujar un girasol en Python utilizando la librería turtle. Vamos a crear un diseño animado que incluye pétalos amarillos y semillas dispuestas en espiral en el centro, finalizando con un mensaje especial en la parte superior.

Puedes ejecutar el programa principal de dos maneras:

En tu computadora

Ejecuta el programa principal con:

python main.py

Girasol PC

En Android con "Pydroid 3"

Si prefieres ejecutarlo en tu dispositivo Android, puedes hacerlo con la ayuda de la aplicación "Pydroid 3". Sigue estos pasos:

  • Abre la aplicación "Pydroid 3".
  • Pega el código en un nuevo proyecto.
  • Ejecuta el programa.

Girasol App

Desarrollo:

Paso 1: Configuración Inicial

Para empezar, necesitamos importar las librerías y configurar el entorno de dibujo:

import math
import turtle

# Configuración inicial de la ventana
turtle.bgcolor("black")        # Fondo negro para resaltar el girasol
turtle.shape("turtle")         # Cambiamos el cursor a forma de tortuga
turtle.speed(0)                # Velocidad máxima para un dibujo rápido

Paso 2: Dibujar los Pétalos del Girasol

Vamos a dibujar una serie de pétalos alrededor del centro del girasol. Esto lo logramos con dos bucles: el primero controla la cantidad de capas de pétalos, y el segundo dibuja cada pétalo en una capa.

# Posicionar la tortuga para empezar a dibujar los pétalos
turtle.goto(0, -40)
turtle.pendown()
h = 0

for i in range(16):  # Dibujar 16 capas de pétalos
    for j in range(18):  # Cada capa tiene 18 pétalos
        turtle.color("yellow")          # Color de los pétalos
        h += 0.005                      # Ajuste de color (opcional)
        turtle.rt(90)
        turtle.circle(150 - j * 6, 90)  # Forma curva del pétalo
        turtle.lt(90)
        turtle.circle(150 - j * 6, 90)
        turtle.rt(180)
    turtle.circle(40, 24)               # Espaciado para la siguiente capa

Cada pétalo es una curva que rota alrededor del centro para dar la apariencia de un girasol real.

Paso 3: Dibujar el Centro del Girasol

Para crear un centro circular marrón, usamos un círculo relleno. Esto dará contraste con los pétalos amarillos:

turtle.penup()
turtle.goto(0, 0)
turtle.color("black")
turtle.fillcolor("brown")
turtle.begin_fill()
turtle.circle(0)  # Este círculo se ajusta con un tamaño adecuado
turtle.end_fill()

Paso 4: Añadir las Semillas en Espiral

Aquí aplicamos el ángulo áureo (137.508 grados) para organizar las semillas en espiral, simulando la disposición natural del girasol. Este patrón se conoce como distribución de espirales de Fibonacci.

phi = 137.508 * (math.pi / 180.0)  # Convertimos el ángulo a radianes

for i in range(160 + 40):
    r = 4 * math.sqrt(i)           # Radio basado en la raíz cuadrada para el espaciado
    theta = i * phi
    x = r * math.cos(theta)
    y = r * math.sin(theta)
    turtle.penup()
    turtle.goto(x, y)
    turtle.setheading(i * 137.508)
    turtle.pendown()
    if i < 160:  # Condición para dibujar solo dentro de los límites del centro
        turtle.stamp()  # Dibuja una pequeña marca para cada "semilla"

Paso 5: Añadir el Mensaje "Te Quiero"

Finalmente, vamos a escribir un mensaje en la parte superior del girasol. Cambiaremos el color a blanco para que destaque en el fondo oscuro.

turtle.penup()
turtle.goto(0, 300)                  # Ajuste de posición en la parte superior
turtle.color("White")                # Color del texto
turtle.write("Te Quiero", align="center", font=("Arial", 24, "bold"))

Paso 6: Limpiar y Mostrar

Para dar un acabado, ocultamos el cursor de la tortuga y añadimos un comando que cerrará la ventana al hacer clic en ella.

turtle.hideturtle()
turtle.exitonclick()

Código Completo

import math
import turtle

# Configuración inicial
turtle.bgcolor("black")
turtle.shape("turtle")
turtle.speed(0)

# Dibujar los pétalos
turtle.goto(0, -40)
turtle.pendown()
h = 0
for i in range(16):
    for j in range(18):
        turtle.color("yellow")
        h += 0.005
        turtle.rt(90)
        turtle.circle(150 - j * 6, 90)
        turtle.lt(90)
        turtle.circle(150 - j * 6, 90)
        turtle.rt(180)
    turtle.circle(40, 24)

# Centro del girasol
turtle.penup()
turtle.goto(0, 0)
turtle.color("black")
turtle.fillcolor("brown")
turtle.begin_fill()
turtle.circle(0)
turtle.end_fill()

# Semillas en espiral
phi = 137.508 * (math.pi / 180.0)
for i in range(160 + 40):
    r = 4 * math.sqrt(i)
    theta = i * phi
    x = r * math.cos(theta)
    y = r * math.sin(theta)
    turtle.penup()
    turtle.goto(x, y)
    turtle.setheading(i * 137.508)
    turtle.pendown()
    if i < 160:
        turtle.stamp()

# Texto final
turtle.penup()
turtle.goto(0, 300)
turtle.color("White")
turtle.write("Te Quiero", align="center", font=("Arial", 24, "bold"))
turtle.hideturtle()
turtle.exitonclick()

Explicación Final

Este código crea un girasol estilizado, aplicando matemáticas básicas y patrones visuales inspirados en la naturaleza. El mensaje "Te Quiero" lo hace personal y especial. ¡Prueba a cambiar los colores o ajustar los parámetros para personalizar el diseño!

Compartir:

Ver más

Integración de Azure Cosmos DB con MongoDB, Spark y Databricks para PowerBI
138 Tutoriales
¿Cómo conectar SQL Server y PostgreSQL con Azure Databricks?
356 Tutoriales
Análisis de Datos de Pokémon Go
113 Tutoriales
Dominando PySpark: Análisis de Datos con la DataFrames API en Databricks
130 Tutoriales

author-dibuja-un-girasol-amarillo-con-python-y-turtle
Leonardo Narváez

Desarrollador de software apasionado y creativo con experiencia en diversos lenguajes y tecnologías. Especializado en la creación de soluciones innovadoras y eficientes, como aplicaciones web y móviles, sitios web interactivos y soluciones personalizadas.

Artículos