Leer Primero

Como se utiliza este blog?

lunes, 1 de enero de 2024

Dibujo de un arbol de navidad utilizando el módulo Python Turtle

Bienvenido a mi blog, hoy hablaremos un poco de Python turtle, el cual es un módulo de Python que permite crear gráficos vectoriales mediante el uso de comandos simples. Estos comandos controlan un cursor, conocido como tortuga (turtle), que se mueve por la pantalla y dibuja líneas y figuras geométricas y nos permite crear diseños personalizados. Es comúnmente utilizado en la enseñanza de la programación, ya que es fácil de entender y usar. Con Python turtle, los estudiantes pueden aprender conceptos básicos de programación como bucles, condicionales y funciones mientras crean sus propios gráficos. Algunos ejemplos de cómo utilizar la función turtle incluyen:

  • Mover el cursor hacia adelante utilizando el comando "forward()"
  • Girar el cursor utilizando el comando "left()" o "right()"
  • Cambiar el color de la línea utilizando el comando "pencolor()"
  • Escribir texto en la pantalla utilizando el comando "write()"
  • Mostrar o ocultar el cursor utilizando el comando "showturtle()" o "hideturtle()"

Para utilizar la función turtle, primero debemos importar el módulo en nuestro script. Luego, podemos crear una instancia de turtle y utilizar los comandos mencionados anteriormente para dibujar en la pantalla. Hoy aprenderemos a dibujar un sencillo arbol navideño con el modulo Python Turtle.

En el siguiente código Python utilizamos el módulo Turtle para dibujar un patrón que representa un árbol de Navidad, se utiliza la biblioteca Turtle para crear un patrón visual con círculos y cuadrados. La figura se forma mediante iteraciones y se utilizan diferentes colores para los círculos en ciertos puntos del patrón. Este código utiliza dos tortugas, una para dibujar cuadrados (representando los niveles del árbol) y otra para dibujar círculos (representando las bolas de Navidad). El patrón se crea mediante bucles y la posición de las tortugas se ajusta en cada iteración. Finalmente, se agrega un mensaje de texto y la ventana se cierra al hacer clic, aca tenemos el desglose del codigo comentado:
# -------------------------------------------------------------------------
# (| " christmastree.py                                                 "|)
# (| "                                                                  "|)
# (| " Este sencillo y corto código en Python, utiliza el módulo Turtle "|)
# (| " para dibujar un patrón que representa un árbol de Navidad, se    "|)
# (| " utiliza la biblioteca Turtle para crear un patrón visual con     "|)
# (| " círculos y cuadrados. La figura se forma mediante iteraciones y  "|)
# (| " se utilizan diferentes colores para los círculos en ciertos      "|)
# (| " puntos del patrón.                                               "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------

# Se importar la biblioteca turtle para graficos simples
import turtle

# Se configura la pantalla con dimensiones 800x600
screen = turtle.Screen()
screen.setup(800, 600)

# Se crea un objeto turtle llamado 'circle' para representar las bolas
# de adorno
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()

# Se crea un objeto turtle llamado 'square' para representar los bloques
# cuadrados del árbol
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()

# Posiciona el objeto 'circle' en la parte superior del árbol y lo marca
# como circulo inicial
circle.goto(0, 280)
circle.stamp()

# Inicializar variable de ajuste
k = 0

# Bucle para dibujar los bloques del árbol y las bolas de adorno, es decir
# se itera para crear el patrón
for i in range(1, 17):
    y = 30 * i
    for j in range(i - k):
        x = 30 * j
        # Posiciona y marca el bloque en la posición actual y su reflejo
        # simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Añade bolas de adorno de color rojo y amarillo en ciertas filas del árbol
    if i % 4 == 0:
        x = 30 * (j + 1)
        circle.color('red')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()
        k += 2

    if i % 4 == 3:
        x = 30 * (j + 1)
        circle.color('yellow')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()

# Cambia el color del objeto 'square' a marrón para representar el tronco
# del árbol
square.color('brown')

# Bucle para dibujar el tronco del árbol, es decir añadir más filas al
# patrón
for i in range(17, 20):
    y = 30 * i
    for j in range(3):
        x = 30 * j
        # Posiciona y marca el bloque del tronco y su reflejo simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Crea un objeto turtle llamado 'text_turtle' para mostrar un mensaje
text_turtle = turtle.Turtle()
text_turtle.hideturtle()
text_turtle.up()
text_turtle.color('blue')
text_turtle.goto(350, -280)
text_turtle.write("Christmas tree in Python by jorgechac", align='right', font=('Arial', 10, 'bold'))

# Esperamos a que el usuario haga clic en la ventana para cerrarla
turtle.exitonclick()

Finalmente después de ejecutar el código, se abrirá una ventana independiente y se comenzará a generar el Arbol de Navidad, asi:




Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.




También te puede interesar: