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.
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í.
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).
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.
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.
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...")
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.
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...")
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Amigo, un cordial saludo. Estoy haciendo un proyecto y en este requiero hacer dibujos de ciertas figuras, por ejemplo un símbolo matemático, como el de la integral, el de la raíz y algunos otros, pero la verdad no sé como abordarlo. Alguna idea o guía que me pueda ofrecer, le agradezco
Hola. Puede que lo siguiente le sirva: https://matplotlib.org/stable/tutorials/text/mathtext.html
Saludos