python

Dibujando figuras con Python y Turtle

En este post te voy a mostrar una pequeña introducción a Turtle, el módulo de Python que permite dibujar figuras y formas desde las más básicas hasta las más complejas.

En concreto te mostraré cómo hacer una estrella, un cuadrado, y algunos espirales.

Importando módulo

Tengo entendido que este módulo ya viene incluido en Python 3. Por lo tanto, basta con instalar Python para que puedas usarlo.

Ahora impórtalo con:

from turtle import *

Esto va a importar todas las funciones como speed, right, forward, etcétera (propias de turtle), mismas que puedes consultar aquí.

Funciones iniciales

Todos los trazos que turtle haga van dejando rastro, es importante saber esto.

Con forward se avanza en la dirección establecida por el giro. Por defecto se avanza hacia la derecha. Con right podemos girar determinados grados.

Así que forward(100), right(90) y forward(100) harían la mitad de un cuadrado (bueno, dos lados).

Modificando velocidad de dibujo

Al dibujar figuras con turtle usando Python podrás modificar la velocidad de dibujo. Si quieres que no se vea ninguna animación, invoca a speed(0) y si en cambio quieres observar el proceso de dibujo de manera lenta, invoca a speed(1).

Puedes encontrar más sobre la velocidad en este enlace.

Dibujando un cuadrado

Para dibujar un cuadrado solo necesitamos dibujar 4 líneas y girar 90 grados en cada paso. Ten en cuenta que el ángulo tomado en cuenta es el externo; en este caso no hay problema porque son 90 grados pero en otras ocasiones tendremos que hacer algunas restas.

from turtle import *

"""
Encerramos el comportamiento en una función. 
"""


def cuadrado(longitud):
    # Cuatro veces...
    for i in range(4):
        # Ir hacia adelante
        forward(longitud)
        # Y girar 90 grados
        right(90)


# Yo no quiero animaciones
speed(0)
# Dibujar un cuadrado de 100
cuadrado(100)
# El input es para pausar el programa
input("Presiona Enter para salir...")

En este caso encerramos todo en una función que recibe la longitud. Así de simple es. La salida será una imagen con un cuadrado.

Espiral de cuadrados

Dibujar espiral de cuadrados con turtle y Python

Podemos crear un efecto interesante si dibujamos varios cuadros y los vamos rotando. Para este punto es importante saber que cualquier invocación a las funciones de turtle, modifican al dibujo globalmente.

Con esto quiero decir que no importa desde dónde llamemos a las funciones, todas ellas modificarán el mismo dibujo.

Así que podemos hacer que se dibujen 72 cuadrados y que se vayan rotando 5 grados cada uno, logrando 360 grados en total. Para ello hacemos lo siguiente:

from turtle import *



def cuadrado(longitud):
    # Cuatro veces...
    for i in range(4):
        # Ir hacia adelante
        forward(longitud)
        # Y girar 90 grados
        right(90)

def espiral():
    for i in range(72):
        # Dibujar un cuadrado de 100
        cuadrado(100)
        # Y girar 5 grados
        right(5)


# Yo no quiero animaciones
speed(0)
# Dibujar un espiral
espiral()
# El input es para pausar el programa
input("Presiona Enter para salir...")

Dibujo de estrella con turtle y Python

En este momento es cuando es importante lo que mencionaba sobre los ángulos. Ahora al girar, para dibujar la estrella correctamente, necesitamos un ángulo de 180 - 36.

Siempre tenemos que restar de 180 en caso de que referirnos al ángulo interno. El 36 viene del ángulo interno, y hace un momento que usábamos un ángulo de 90 grados no había problema, pues 180 – 90 es 90.

from turtle import *


def estrella(longitud):
    for i in range(5):
        forward(longitud)
        right(180 - 36)


# Yo no quiero animaciones
speed(0)
# Dibujar estrella de 100
estrella(100)
# El input es para pausar el programa
input("Presiona Enter para salir...")

Lo demás es simplemente dibujar líneas, así como cuando dibujamos cuadrados. Solo que en este caso importa el ángulo.

Espiral de estrellas

Estrellas en espiral con Python y turtle

Para terminar esta pequeña introducción veamos cómo crear un espiral de estrellas. Sigue el mismo principio del espiral de cuadrados, solo que ahora es con una estrella de 5 picos.

from turtle import *


def estrella(longitud):
    for i in range(5):
        forward(longitud)
        right(180 - 36)


def espiral_estrellas():
    for i in range(72):
        # Estrella de 300 de longitud
        estrella(300)
        # Girar 5 grados
        right(5)


# Yo no quiero animaciones
speed(0)
# Dibujar espiral
espiral_estrellas()
# El input es para pausar el programa
input("Presiona Enter para salir...")

Más ideas

Puedes dibujar triángulos, círculos, etcétera. También puedes ir aumentando la longitud de las líneas para crear otros efectos.

Como siempre, la mejor forma de aprender es la documentación oficial.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

13 horas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

7 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

7 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

7 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

7 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

7 días hace

Esta web usa cookies.