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
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.
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!