Gráficos: el módulo turtle (2)

En esta lección se trata la creación de gráficos usando el módulo turtle. Se recomienda leer previamente la lección turtle (1).

Cambio de coordenadas: setworldcoordinates()

La función setworldcoordinates(x1, y1, x2, y2) permite modificar las coordenadas de la ventana, definiendo las coordenadas de la esquina inferior izquierda (x1, y1) y de la esquina superior derecha (x2, y2).

El interés de esta función es poder desplazar el origen del centro de coordenadas y cambiar la escala:

Escribir texto: write()

La función write(texto, desplazarTortuga, alineación, fuente) permite escribir texto en el espacio de dibujo. Los cuatro argumentos de la función son:


Se pueden omitir los últimos argumentos, pero no los anteriores. Por ejemplo, podemos omitir el tipo de letra (el cuarto argumento), pero si queremos especificar el tipo de letra, debemos indicar los tres argumentos anteriores.


El desplazamiento del cursor se puede utilizar para que el texto de varias instrucciones aparezca seguido en la pantalla:

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

goto(50,10)
write("Esto es ")
write("una prueba")

exitonclick()

Módulo turtle. Función write()

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

goto(50,10)
write("Esto es ", True)
write("una prueba")

exitonclick()

Módulo turtle. Función write()

Solicitar valores al usuario: textinput() y numinput()

Para pedir datos al usuario en un programa que dibuja gráficos de tortuga se pueden utilizar la función input(). El inconveniente es que esta función solicita los datos en la ventana principal de IDLE, por lo que hay que estar cambiando el foco de una ventana a otra.

En vez de la función input(), se pueden utilizar las funciones textinput() y numinput() de la biblioteca turtle.


La función textinput(título, mensaje) solicita una cadena al usuario en una ventana emergente. Los dos argumentos de la función son:

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

nombre = textinput("Nombre", "¿Cuál es su nombre?")

exitonclick()

Módulo turtle. Función textinput()


La función numinput(título, mensaje, valorPredeterminado, valorMínimo, valorMáximo) solicita un número al usuario en una ventana emergente. Los dos argumentos de la función son:

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

edad = numinput("Edad", "¿Cuál es su edad?", 20, 0, 120)

exitonclick()

Módulo turtle. Función numinput()

Si se escribe un valor numérico menor que valorMínimo o mayor que valorMáximo, se muestra un aviso:

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

edad = numinput("Edad", "¿Cuál es su edad?", 20, 0, 120)

exitonclick()

Módulo turtle. Función numinput()

Si se escribe un valor no numérico, se muestra un aviso:

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")

edad = numinput("Edad", "¿Cuál es su edad?", 20, 0, 120)

exitonclick()

Módulo turtle. Función numinput()

La función numinput() recoge los números como decimales. Si queremos recoger valores enteros, debemos utilizar la función int():

from turtle import *

setup(450, 150, 0, 0)
screensize(300, 150)
title("www.mclibre.org")
hideturtle()

edad = int(numinput("Edad", "¿Cuál es su edad?", 20, 0, 120))
write(f"Su edad es {edad}")

exitonclick()

Módulo turtle. Función numinput()