El módulo Python Turtle es una herramienta gráfica que se puede usar para dibujar gráficos simples en la pantalla usando un cursor. Python Turtle era parte del lenguaje de programación de Logo que tenía un propósito similar de permitir a los usuarios dibujar gráficos en la pantalla con la ayuda de comandos simples. Turtle es un módulo preinstalado y tiene funciones y comandos incorporados que se pueden usar para dibujar imágenes en la pantalla. Este artículo se centrará principalmente en la creación de un gráfico mediante los comandos del teclado y en cómo se puede utilizar la misma metodología para agregar o cambiar el color del gráfico.
Funciones utilizadas:
- Screen() : se usa para crear un lienzo para dibujar
- Movimiento de Turtle:
- adelante(distancia) | fd(distancia) : mueve la Turtle hacia adelante
- atrás(distancia) | espalda(distancia) | bk(distancia) : mueve la Turtle hacia atrás
- derecha(distancia) | rt(distancia) : mueve la Turtle a la derecha
- izquierda(distancia) | lt(distancia) : mueve la Turtle a la izquierda
- circle(radius) : dibuja un círculo con un radio dado
- Colorante:
- color() : establece los colores
- begin_fill() : este método se llama antes de dibujar una forma que se va a rellenar
- end_fill() : Rellena la forma dibujada después de la llamada a begin_fill().
A continuación se presentan dos enfoques que tratan y discuten cómo crear un teclado gráfico.
Método 1
Acercarse
- Importar módulo y submódulos
- Crear configuración: el método setup() configura una ventana de tamaño 500 × 500.
- Crear ventana: el método Screen() crea un lienzo para dibujar.
- Instanciar objeto Turtle
- Establezca la velocidad de la Turtle en 0, que es la máxima
- Establecer visibilidad: el método showturtle() establece la visibilidad de la Turtle.
- Para capturar las pulsaciones de teclas, necesitamos definir algunas funciones, a saber, arriba, abajo, izquierda, derecha. Por defecto, la Turtle apunta a la derecha.
- El método setheading() cambia la orientación de la Turtle al ángulo dado.
- El método forward() mueve la Turtle a la distancia especificada.
- El método listen() establece el foco en la pantalla de la Turtle para capturar eventos.
- El método onkey() invoca el método específico de la pulsación de tecla capturada. El primer argumento de onkey() es la función a llamar y el segundo argumento es la clave.
- Arriba, Abajo, Izquierda y Derecha son las teclas de flecha correspondientes en el teclado.
- Agregue el comando mainloop(), evita que la aplicación finalice antes de que el usuario haga clic en la opción de salida.
Programa
Python3
import turtle from turtle import * setup(500, 500) Screen() turtle = turtle.Turtle() turtle.speed(0) showturtle() def up(): turtle.setheading(90) turtle.forward(100) def down(): turtle.setheading(270) turtle.forward(100) def left(): turtle.setheading(180) turtle.forward(100) def right(): turtle.setheading(0) turtle.forward(100) listen() onkey(up, 'Up') onkey(down, 'Down') onkey(left, 'Left') onkey(right, 'Right') mainloop()
Producción
Método 2: cambiar de color
Esto es similar al ejemplo anterior con la adición de algunas teclas más. Ahora hemos añadido teclas para cambiar el color de la línea.
- Si el usuario presiona r se vuelve rojo,
- Si g se vuelve verde y si b se vuelve azul.
- Para restablecer el color de la línea a negro, el usuario debe presionar z.
Además, el grosor de la línea aumenta al establecer el ancho de la Turtle en 5px usando el método width().
Programa
Python3
import turtle from turtle import * setup(500, 500) Screen() turtle = turtle.Turtle() turtle.speed(0) turtle.width(5) showturtle() def up(): turtle.setheading(90) turtle.forward(100) def down(): turtle.setheading(270) turtle.forward(100) def left(): turtle.setheading(180) turtle.forward(100) def right(): turtle.setheading(0) turtle.forward(100) def r(): turtle.color("red") def g(): turtle.color("green") def b(): turtle.color("blue") def z(): turtle.color("black") listen() onkey(up, 'Up') onkey(down, 'Down') onkey(left, 'Left') onkey(right, 'Right') onkey(z, "z") onkey(r, 'r') onkey(g, 'g') onkey(b, 'b') mainloop()
Producción
Publicación traducida automáticamente
Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA