Dibujar formas con el módulo Python Turtle

nuestra comprensión básica del lenguaje Python es saber que podemos programar funciones, introducir iteraciones con la ayuda de bucles de Python y decidir qué programa ejecutar con la ayuda de declaraciones condicionales como if, elif y else. Pero Python es mucho más poderoso que eso; puede acceder y procesar archivos, crear juegos interesantes, simular conceptos científicos, procesar big data, generar modelos de aprendizaje automático y mucho más.

En este artículo, usaremos Python para crear resultados gráficos utilizando el módulo Turtle de Python. Este es un tutorial para principiantes que enseña cómo dibujar formas y programar dibujos usando Python. Para seguir adelante, es esencial tener un conocimiento profundo de los fundamentos de Python: declaraciones básicas, bucles, clases y objetos, y acceso a módulos.

Módulo tortuga de Python

El módulo tortuga en Python es un módulo que permite salidas gráficas a través de código. El módulo proporciona un puntero, que se puede personalizar como una tortuga (de ahí el nombre), y el movimiento de la tortuga deja un rastro, dibujando formas y creando patrones visuales en la pantalla. El módulo se instala con la biblioteca estándar de Python, lo que significa que no tenemos que instalar el módulo nosotros mismos. Se puede acceder fácilmente a sus clases y funciones a través de la siguiente declaración de importación:

de importación de tortugas *

Ahora, profundicemos en este módulo a través de la documentación oficial de Python: https://docs.python.org/3/library/turtle.html

Comandos básicos de la tortuga

Como se puede observar en la documentación enlazada anteriormente, los comandos básicos que podemos darle a nuestra tortuga son los siguientes:

forward() Esta función le dice a la tortuga que avance una distancia específica. Toma un valor entero como argumento. hacia atrás()Esta función le dice a la tortuga que retroceda una distancia específica. También toma un valor entero como argumento. left()Esto le dice a la tortuga que gire hacia la izquierda en un cierto ángulo que se ha pasado a la función como argumento. right()Esto le dice a la tortuga que gire hacia la derecha en un cierto ángulo que se ha pasado a la función como argumento. color() Esto cambiará el color de la tortuga de acuerdo con la cadena que se ha pasado a esta función como argumento (por ejemplo, “rosa”). Se puede acceder a los nombres de los colores desde aquí. width() Esto cambiará el ancho del puntero por el valor entero exitonclick() Esto nos permitirá cerrar la pantalla que se ha generado como salida a nuestro código, simplemente haciendo clic en la pantalla.

Ejecute el siguiente código y modifíquelo según sus requisitos para comprender qué hace la tortuga cuando se llama a cada una de las funciones anteriores.

desde tortuga importar * color(“rosa”) ancho(5) adelante(100) izquierda(45) color(“azul”) ancho(4) adelante(100) izquierda(45) adelante(20) color(“rojo”) ancho(4) adelante(60) izquierda(45) atrás(50) color(“amarillo”) ancho() adelante(100) derecha(45) salironclick()

Funciones básicas de Turtle (Imagen del autor)

Usando gráficos de tortuga OOP

Ahora que hemos visto cómo funcionan las funciones básicas del módulo y cómo se genera el resultado, utilizaremos el concepto de programación orientada a objetos que se explica en la documentación para mejorar nuestra comprensión. El concepto de clases y objetos, creados a través del constructor, facilita la programación de programas enormes y complejos con variables que tienen parámetros similares pero valores diferentes. Aquí es donde la POO viene muy bien, y su incorporación en el módulo nos permitirá utilizar más de una tortuga a la vez.

Para seguir adelante, es importante tener un nivel básico de comprensión de clases y objetos, específicamente cómo se pueden crear objetos con sus atributos y métodos.

Creemos nuestros objetos tortuga y pantalla:

de tortuga importar Tortuga, Pantalla mi_tortuga = Tortuga() imprimir(mi_tortuga)

Objeto Tortuga creado (Imagen del autor)

Como se puede ver en la captura de pantalla anterior, el objeto tortuga ha sido creado y su ubicación está definida. Ahora usaremos la documentación para personalizar nuestra tortuga.

Definiremos la forma, color y ancho de nuestra tortuga usando el siguiente código:

mi_tortuga.forma(“tortuga”) mi_tortuga.color(“coral1”) mi_tortuga.ancho(4)

Definamos también el objeto de pantalla y personalícelo.

pantalla = Pantalla() pantalla.título(‘Dibujar formas con el módulo Tortuga’) pantalla.bgcolor(“blanco”) pantalla.exitonclick()

Objeto Tortuga y Objetos de Pantalla Personalizados (Imagen del Autor)

El objeto de pantalla se definió anteriormente y su título y colores de fondo se configuraron en consecuencia. ¡Ahora, avancemos hacia el objetivo principal de este tutorial!

Dibujar formas

¡Ahora aprenderemos a dibujar diferentes formas con nuestra tortuga personalizada!

Triángulo

La primera forma que dibujaremos es un triángulo. Esto se puede dibujar usando las funciones básicas que discutimos anteriormente: adelante y derecha. Sabemos que un triángulo consta de 3 lados y, para un triángulo equilátero, el ángulo entre cada lado es 60. Podemos dibujar este triángulo usando las siguientes líneas de código:

mi_tortuga.adelante(200) mi_tortuga.derecha(120) mi_tortuga.adelante(200) mi_tortuga.derecha(120) mi_tortuga.adelante(200) mi_tortuga.derecha(120)

Triángulo (Imagen del autor)

Como puede verse, hemos creado con éxito un triángulo con la ayuda de nuestra tortuga. Observe que hemos establecido el ángulo por el cual la tortuga se mueve hacia la derecha en 120, por lo que eso significaría que el ángulo restante que se convertiría en el ángulo interno del triángulo será 180 – 120 = 60. Este había sido nuestro objetivo. Trabajaremos de manera similar para la siguiente forma.

Cuadrado

Ahora usaremos nuestra tortuga para dibujar un cuadrado. Como un cuadrado tiene 4 lados, usaremos el método de movimiento hacia adelante 4 veces, con el ángulo establecido en 360/4 = 90º siempre que estemos usando el método correcto. Cambiemos también el color de la tortuga a turquesa oscuro (Turtle Colors)

Aquí está nuestro código para dibujar un cuadrado:

my_turtle.color(“turquesa oscuro”) my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90)

Cuadrado (Imagen del autor)

Pentágono

A continuación, crearemos un pentágono, que es una forma de 5 lados con un ángulo entre cada lado igual a 108. Esto significa que el ángulo exterior será igual a 72. Codificaremos lo anterior en nuestro código, esta vez usando 5 líneas de código para los 5 lados. También cambiaremos el color de nuestra tortuga.

my_turtle.color(“verde primavera”) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) mi_tortuga.derecha(72)

Pentágono (Imagen del autor)

Como puede ver en el bloque de código anterior, hemos reducido el movimiento hacia adelante de 200 a 150 para que el pentágono pueda dibujarse dentro de la pantalla.

Construyendo el algoritmo

Hemos utilizado el módulo tortuga para dibujar un triángulo, un cuadrado y un pentágono. Como podemos ver en lo anterior, podemos detectar fácilmente un patrón. La tortuga avanza y hacia la derecha tantos lados como haya. Para dibujar un triángulo, por lo tanto una forma de tres lados, la tortuga se mueve hacia adelante, luego hacia la derecha, luego hacia adelante, luego hacia la derecha, luego nuevamente hacia adelante y nuevamente hacia la derecha, un total de 3 series de adelante y derecha. Para un cuadrado, el mismo conjunto se ejecuta cuatro veces, es decir, tantos lados como tenga la forma. Y lo mismo ocurre con un pentágono. Así, podemos establecer un patrón de funciones recurrentes hacia adelante y hacia la derecha. Podemos establecer un valor fijo de la distancia recorrida cada vez que la tortuga avanza. En cuanto al ángulo dado con el método correcto, así como el número de veces que se repiten las declaraciones depende del número de lados de la forma, de manera similar, el ángulo también está determinado por el número de lados. Este ángulo exterior se puede calcular fácilmente mediante la siguiente fórmula:

Ángulo exterior = 360 / Número de lados

El ángulo exterior de un triángulo será 360/3 = 120. El ángulo exterior de un cuadrado será 360/4 = 90, y así sucesivamente. Esto se utilizará para alimentar el método correcto.

Definiendo la función

Ahora definiremos una función genérica que toma el número de lados de una forma para dibujarla. Si damos 3 como argumento, creará un triángulo. Si damos 8 como argumento, se creará un octágono, etc.

def dibujar_formas(núm_lados): ángulo = 360 / núm_lados para i en rango(núm_lados): mi_tortuga.adelante(50) mi_tortuga.derecha(ángulo)

La función toma el número de lados, calcula el ángulo exterior, que se introduce en el método correcto, y ejecuta el método hacia adelante y hacia la derecha tantas veces como lados haya. Entonces, supongamos que queremos dibujar un octágono, llamaremos a la función y le daremos el número 8 como argumento a la función. También podemos definir el color de la forma:

my_turtle.color(“rojo violeta pálido”) draw_shapes(8)

Octágono rojo violeta pálido (imagen del autor)

Dibujar formas dentro de un rango

Ahora usaremos la función anterior que hemos definido y usaremos el bucle for para recorrer un rango de números, cada uno correspondiente a un lado. Comenzaremos con 3 para un triángulo y nuestra tortuga dibujará tantas formas como queramos. Entonces, supongamos que queremos dibujar un triángulo, un cuadrado, un pentágono, etc. hasta un decágono, recorreremos los números del 3 al 11, ya que 11 está excluido en el rango de un bucle for.

Agreguemos también la posibilidad de dibujar cada forma con un color diferente. Para eso, crearemos una lista de colores y el bucle for también recorrerá los colores de la lista.

mis_colores = [“dark gray”, “hot pink”, “midnight blue”, “orange”, “indigo”, “dark sea green”, “tan”, “pale violet red”, “sky blue”, “spring green”]

Una vez que hayamos creado nuestra lista de colores, modificaremos nuestra función para incluir la función de cambio de color y luego recorreremos el rango para dibujar formas.

def dibujar_formas(núm_lados): ángulo = 360 / núm_lados mi_tortuga.color(mis_colores[3-num_sides]) para i en rango(num_sides): my_turtle.forward(75) my_turtle.right(angle) para shape_size_n en range(3,11): draw_shapes(shape_size_n)

Dibujar formas coloridas con tortuga

Conclusión

En este tutorial, exploramos el módulo tortuga, entendimos sus funciones básicas y el concepto de programación orientada a objetos, y lo usamos para crear formas. Este fue un tutorial de Python de nivel intermedio que requirió un nivel básico de comprensión de clases y objetos, definir y llamar funciones, así como personalizar colores con la ayuda de Trinket. Este es un ejemplo de nivel básico de lo que se podría hacer con el módulo Turtle. ¡Podemos explorar más el módulo y aprender mucho sobre codificación a través de él!