Hola, hoy vamos a aprender a dibujar formas como círculos, cuadrados así como triángulos en Python. El módulo tortuga es el que usaremos para realizar esta tarea.
Vamos a presentar en detalle la librería Turtle, sus características, así como las diferentes funcionalidades que ofrece.
Este artículo no requiere ningún requisito previo aparte del conocimiento de las características matemáticas de las formas que vamos a presentar.
1. Turtle el módulo de dibujo de Python
Turtle es un módulo de Python que tiene el papel de un tablero de dibujo, de hecho, el principio es simple. Esta biblioteca tiene un conjunto de funciones que le permiten ordenar a una tortuga que dibuje la forma que desee. Por ejemplo, turtle.forward() y turtle.right() permiten que la tortuga se mueva.
Se utilizan varios métodos para dibujar en el módulo tortuga. Entre estos se encuentran:
forward(x) mueve el lápiz hacia adelante x unidades.
hacia atrás(x) mueve el lápiz hacia atrás x unidades.
right(x) rotación del bolígrafo en el sentido de las agujas del reloj en un ángulo x.
izquierda(x) rotación del bolígrafo en sentido contrario a las agujas del reloj en un ángulo x.
penup() detener el dibujo de la tortuga.
pendown() la tortuga empieza a dibujar
2. Dibuja un círculo con tortuga.
En esta primera sección del artículo, descubriremos cómo dibujar un círculo en Python y cómo modificar las diferentes características de este último.
Ejemplo
Para concretar la tarea, comenzaremos con un ejemplo sencillo y básico. Ahora, para dibujar un círculo usando tortuga, usaremos una función predefinida en "tortuga".
Sintaxis
# Program Python
# Draw cicle
import turtle
# Initialise turtle
turtle = turtle.Turtle()
rayon = 20
turtle.circle(rayon)
Primero comenzamos importando el módulo tortuga, luego iniciamos una instancia de este último, aquí nombraremos la instancia tortuga. A continuación, elegimos el radio del círculo que queremos dibujar y llamamos a la función circle() que dibuja un círculo del radio definido considerando la posición de la tortuga como el centro.
Resultado de ejecución
2.1. Círculos tangentes
Una tangente es una línea que toca la circunferencia de un círculo desde el exterior siempre que la extensión de esta línea no produzca una intersección con el círculo. Los círculos tangentes son un grupo de círculos que tienen una tangente común.
Ejemplo
En este ejemplo, vamos a implementar un programa que dibuja círculos tangentes usando un bucle.
Sintaxis
# Program Python
# Draw tangent circles
# Import turtle module
import turtle
# Initialise turtle
tur = turtle.Turtle()
# Radius of the smallest circle
rayon = 10
# Number of circles
nb = 10
# Loop to draw the tangent circles
for i in range(1, nb + 1, 1):
tur.circle(rayon*i)
Resultado de ejecución
2.2. círculos espirales
La espiral tiene una forma similar a un círculo normal, la diferencia es que el radio de la espiral aumenta después de cada incremento.
Ejemplo
Aquí hay un programa que dibuja círculos en espiral usando un bucle for.
Sintaxis
# Python program
# Draw spiral circles
# import the turtle module
import turtle
tur = turtle.Turtle()
# take the size of the initial radius
rayon = 10
# Loop for printing the spiral circle
for i in range(100):
tur.circle(rayon + i, 45)
Comenzamos importando el módulo de tortuga y luego iniciamos una instancia de tortuga. A continuación, definimos nuestro radio inicial de tamaño 10. Finalmente, definimos un ciclo for para imprimir los círculos espirales, como puede ver, el radio del círculo aumenta después de cada iteración.
El segundo argumento del método circle() ayuda a dibujar un arco, por lo que controla la medida del ángulo central. Aquí pasamos 45 como argumento para el ángulo central. Este comando se repite 100 veces para obtener círculos concéntricos.
Resultado de ejecución
2.3. Círculos concéntricos
Los círculos concéntricos son un conjunto de círculos que tienen el mismo centro y cuyo radio aumenta proporcionalmente con cada iteración.
Ejemplo
Sintaxis
import turtle
tur = turtle.Turtle()
# Circle radius
radius = 10
# boucle pour dessiner les cercles cocentriques
for i in range(20):
tur.circle(radius * i)
tur.up ()
trusty ((radius* i)*(-1))
tur.down ()
Después de dibujar un círculo, tomamos la pluma de tortuga y configuramos la coordenada y de la pluma de tortuga en -1 veces radius*i. Luego volvemos a colocar el bolígrafo en el lienzo. Este proceso se repite 50 veces para obtener círculos concéntricos.
Resultado de ejecución
3. Dibuja cuadrados y rectángulos con el módulo tortuga
En esta segunda sección del tutorial, descubriremos cómo dibujar cuadrados y rectángulos con el módulo tortuga.
Dos funciones que nos son útiles para dibujar cuadrados y rectángulos son: forward() y left(). Antes de dibujar cualquiera de estas formas, necesitamos conocer sus propiedades básicas. Comencemos con un cuadrado. Todos los lados de un cuadrado son iguales y el ángulo entre dos lados adyacentes es de 90°. Por lo tanto, los lados opuestos son paralelos entre sí.
Ahora que conocemos las principales características del cuadrado, podemos proceder a dibujarlo:
Ejemplo
Aquí hay un ejemplo básico de cómo dibujar un cuadrado usando las funciones forward() y left() de Turtle.
Sintaxis
#Program to draw a square with turtle
import turtle
tur = turtle.Turtle()
tur.forward(100) #Forward turtle of 100 units
tur.left(90) #90 degree turtle rotation
tur.forward(100)
tur.left(90)
tur.forward(100)
tur.left(90)
tur.forward(100)
tur.left(90)
Comenzamos importando el módulo tortuga. A continuación, creamos una instancia de tablero de dibujo de tortuga y la asignamos a un objeto llamado tur.
Luego movimos la tortuga hacia adelante 100 unidades ya que el lado de un cuadrado es 100 . Luego, rotamos 90 grados porque el ángulo entre los lados adyacentes es de 90 grados. Estas dos instrucciones se usan para dibujar un lado del cuadrado. Se repiten los mismos pasos 3 veces hasta obtener un cuadrado final.
Resultado de ejecución
3.1. Usando bucles para dibujar un cuadrado con tortuga
Como puede ver en el último ejemplo, usamos las mismas funciones forward(100) y left(90) cuatro veces. Por tanto, es preferible hacer un bucle en lugar de reescribir la misma instrucción varias veces.
Ejemplo
Usaremos el mismo ejemplo que el anterior, la única diferencia es el uso de un bucle en este ejemplo.
Sintaxis
# Using a loop to draw a square with turtle
# We import the turtle module
import turtle
tur = turtle.Turtle()
# Start of loop
for i in range(4):# the loop will rotate 4 times
tur.forward(100) # Advances 100 steps forward
tur.left(90) # rotation 90 degrees
Comenzamos importando el módulo tortuga e iniciando el diseñador. Luego, declaramos un bucle que girará 4 veces para dibujar nuestro cuadrado.
Resultado de ejecución
El resultado de la ejecución es similar al último ejemplo:
3.2. Dibuja rectángulos con tortuga.
Un rectángulo se caracteriza por sus lados opuestos iguales y el ángulo entre dos lados adyacentes de un rectángulo es de 90 grados. Conociendo estas propiedades, podemos dibujar el rectángulo gracias a las funciones del módulo tortuga.
Ejemplo
Suponga que la longitud del rectángulo es de 150 unidades y su ancho es de 80 unidades. Ejecute el siguiente código para obtener el rectángulo deseado.
Sintaxis
#Program to draw a rectangle with the turtle module
import turtle
tur = turtle.Turtle()
tur.forward(150) # Move the turtle 150 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(80) # Move the turtle 80 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(150) # Move the turtle 150 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(80) # Move the turtle 80 units forward
tur.left(90) # rotate the turtle 90 degrees
Movimos la tortuga hacia adelante 150 unidades ya que la longitud de un rectángulo es de 150 unidades. Luego, rotamos la tortuga 90° porque el ángulo entre los lados adyacentes es de 90°. Además, enviamos la tortuga 80 unidades y la convertimos en 90°. Esto completa el segundo lado del rectángulo. Las mismas afirmaciones se repiten una vez más para dibujar los dos lados restantes.
Resultado de ejecución
3.3. Usando bucles para dibujar un rectángulo con tortuga
Basado en el método usado para dibujar un cuadrado usando un bucle, haremos lo mismo para el rectángulo. En este caso, repetiremos forward(150), left(90), forward(80) y left(90) y lo ejecutaremos 2 veces.
Ejemplo
Sintaxis
#Program to draw a rectangle with the turtle module
import turtle
tur = turtle.Turtle()
tur.forward(150) # Move the turtle 150 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(80) # Move the turtle 80 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(150) # Move the turtle 150 units forward
tur.left(90) # rotate the turtle 90 degrees
tur.forward(80) # Move the turtle 80 units forward
tur.left(90) # rotate the turtle 90 degrees
Resultado de ejecución
4. Dibujar triángulos con tortuga
En esta última sección del artículo, descubriremos cómo dibujar triángulos usando las diferentes funciones del módulo tortuga.
Comenzaremos definiendo las funciones usando en esta sección:
Método Turtle() para crear un objeto tortuga
Onscreenclick() Esta función de tortuga que envía la coordenada actual a la función que la usa para formar un triángulo, 1 es para clic izquierdo y 3 es para clic derecho.
Velocidad() aumenta o disminuye la velocidad del dibujante.
penup() Esta función está integrada en la biblioteca de tortugas para dibujar la línea.
pendown() Esta función está integrada en la biblioteca de tortugas para dibujar en línea.
adelante () permite avanzar al diseñador según el píxel proporcionado en la entrada.
left() gira la tortuga hacia la izquierda de acuerdo con el ángulo de rotación dado como entrada.
Ejemplo
Aquí hay un ejemplo simple de dibujar un triángulo equilátero.
Sintaxis
# We import the turtle module
import turtle
# Initiation of the draftsman
tur = turtle.Turtle()
tur. forward(100) # draw base
tur.left (120)
tur.forward (100)
tur.left (120)
tur.forward (100)
tur.done()
Resultado de ejecución
Ejemplo
En este segundo ejemplo, queremos dibujar un triángulo con un ángulo recto.
Sintaxis
import turtle
tur = turtle.Turtle()
tur.forward(100) # base du dessin
tur.left(90)
tur.forward(100)
tur.left(135)
tur.forward(142)
turtle.done()
Resultado de ejecución
Ejemplo
Dibujar una forma de estrella usando dos triángulos isósceles idénticos.
Sintaxis:
import turtle
tur = turtle.Turtle()
# first triangle of the star
tur. forward(100) # draw base
tur.left(120)
tur.forward(100)
tur.left(120)
tur.forward(100)
tur.penup()
tur.right (150)
tur.forward (50)
# second star triangle
tur.pendown()
tur.right(90)
tur.forward(100)
tur.right(120)
tur.forward(100)
tur.right(120)
tur.forward(100)
turtle.done()
Resultado de ejecución
Ejemplo
En este último ejemplo, implementaremos una función triángulo () que permitirá dibujar un triángulo con las coordenadas tan pronto como el usuario haga clic en el diseñador.
Sintaxis
import turtle
aff = turtle.Screen()
# Create tur object
tur=turtle.Turtle()
def triangle(x,y):
# draw line
tur.penup()
# move the cursor to the position of the x and y coordinates
tur.goto(x,y)
tur.pendown()
for i in range(3):
# move the slider 100 units forward
tur.forward(100)
# rotate cursor 120 degrees left
tur.left(120)
# Another time, move the slider 100 units
tur.forward(100)
# special function to send the current position of the cursor on the triangle
turtle.onscreenclick(triangle,1)
turtle.listen()
turtle.done()
Resultado de ejecución
Hemos llegado al final de este artículo, ahora ya sabes cómo dibujar formas básicas gracias al módulo Turtle de Python. Ahora puede pasar a formas más complejas como polígonos, por ejemplo.
También te aconsejamos que descubras todas las características de los dibujos de tortugas como el color del dibujo, el tipo de líneas...
¡Le deseamos mucha suerte y nos vemos en un próximo artículo!