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

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.