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:
  1. # -------------------------------------------------------------------------
  2. # (| " christmastree.py "|)
  3. # (| " "|)
  4. # (| " Este sencillo y corto código en Python, utiliza el módulo Turtle "|)
  5. # (| " para dibujar un patrón que representa un árbol de Navidad, se "|)
  6. # (| " utiliza la biblioteca Turtle para crear un patrón visual con "|)
  7. # (| " círculos y cuadrados. La figura se forma mediante iteraciones y "|)
  8. # (| " se utilizan diferentes colores para los círculos en ciertos "|)
  9. # (| " puntos del patrón. "|)
  10. # (| " "|)
  11. # (| " Este código de ejemplo es de dominio público. "|)
  12. # (| " "|)
  13. # (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB "|)
  14. # (| " Visita https://jorgechac.blogspot.com "|)
  15. # (| " "|)
  16. # (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32 "|)
  17. # (| " Whatsapp y Ventas NEQUI +573177295861 "|)
  18. # (| " Bucaramanga - Colombia "|)
  19. # -------------------------------------------------------------------------
  20. # Se importar la biblioteca turtle para graficos simples
  21. import turtle
  22. # Se configura la pantalla con dimensiones 800x600
  23. screen = turtle.Screen()
  24. screen.setup(800, 600)
  25. # Se crea un objeto turtle llamado 'circle' para representar las bolas
  26. # de adorno
  27. circle = turtle.Turtle()
  28. circle.shape('circle')
  29. circle.color('red')
  30. circle.speed('fastest')
  31. circle.up()
  32. # Se crea un objeto turtle llamado 'square' para representar los bloques
  33. # cuadrados del árbol
  34. square = turtle.Turtle()
  35. square.shape('square')
  36. square.color('green')
  37. square.speed('fastest')
  38. square.up()
  39. # Posiciona el objeto 'circle' en la parte superior del árbol y lo marca
  40. # como circulo inicial
  41. circle.goto(0, 280)
  42. circle.stamp()
  43. # Inicializar variable de ajuste
  44. k = 0
  45. # Bucle para dibujar los bloques del árbol y las bolas de adorno, es decir
  46. # se itera para crear el patrón
  47. for i in range(1, 17):
  48. y = 30 * i
  49. for j in range(i - k):
  50. x = 30 * j
  51. # Posiciona y marca el bloque en la posición actual y su reflejo
  52. # simétrico
  53. square.goto(x, -y + 280)
  54. square.stamp()
  55. square.goto(-x, -y + 280)
  56. square.stamp()
  57. # Añade bolas de adorno de color rojo y amarillo en ciertas filas del árbol
  58. if i % 4 == 0:
  59. x = 30 * (j + 1)
  60. circle.color('red')
  61. circle.goto(-x, -y + 280)
  62. circle.stamp()
  63. circle.goto(x, -y + 280)
  64. circle.stamp()
  65. k += 2
  66. if i % 4 == 3:
  67. x = 30 * (j + 1)
  68. circle.color('yellow')
  69. circle.goto(-x, -y + 280)
  70. circle.stamp()
  71. circle.goto(x, -y + 280)
  72. circle.stamp()
  73. # Cambia el color del objeto 'square' a marrón para representar el tronco
  74. # del árbol
  75. square.color('brown')
  76. # Bucle para dibujar el tronco del árbol, es decir añadir más filas al
  77. # patrón
  78. for i in range(17, 20):
  79. y = 30 * i
  80. for j in range(3):
  81. x = 30 * j
  82. # Posiciona y marca el bloque del tronco y su reflejo simétrico
  83. square.goto(x, -y + 280)
  84. square.stamp()
  85. square.goto(-x, -y + 280)
  86. square.stamp()
  87. # Crea un objeto turtle llamado 'text_turtle' para mostrar un mensaje
  88. text_turtle = turtle.Turtle()
  89. text_turtle.hideturtle()
  90. text_turtle.up()
  91. text_turtle.color('blue')
  92. text_turtle.goto(350, -280)
  93. text_turtle.write("Christmas tree in Python by jorgechac", align='right', font=('Arial', 10, 'bold'))
  94. # Esperamos a que el usuario haga clic en la ventana para cerrarla
  95. 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:






Uso cookies propias y de terceros para mejorar tu navegación. Si continuas navegando en mi blog considero que aceptas el uso de cookies. OK Más información