Python Turtle - Graphics Keyboard Commands
Python Turtle module is a graphical tool that can be used to draw simple graphics on the screen using a cursor. Python Turtle was a part of Logo programming language which had similar purpose of letting the users draw graphics on the screen with the help of simple commands. Turtle is a pre-installed module and has inbuilt commands and features that can be used to draw pictures on the screen. This article will be primarily focused on creating a graphic using keyboard commands along with how the same methodology can be used to add or change color to the graphic.
Functions Used:
- Screen() - used to create a canvas for drawing
- Turtle Motion:
- forward(distance) | fd(distance) : move the turtle forward
- backward(distance) | back(distance) | bk(distance) : move the turtle backwards
- right(distance) | rt(distance) : move the turtle right
- left(distance) | lt(distance) : move the turtle left
- circle(radius) : draws a circle with a given radius
- Coloring:
- color() : set the colors
- begin_fill() : this method is called before drawing a shape that is to be filled
- end_fill() : Fills the shape drawn after the call to begin_fill().
Given below are two approaches that deal and discuss how to create a graphics keyboard
Method 1
Approach
- Import module and submodules
- Create setup- The setup() method sets up a window of size 500x500.
- Create window- The Screen() method creates a canvas for drawing.
- Instantiate turtle object
- Set turtle speed to 0 which is maximum
- Set visibility- The showturtle() method sets the visibility of the turtle.
- In order to capture the keystrokes we need to define few functions namely up, down, left, right. By default, the turtle points to the right.
- The setheading() method changes the orientation of the turtle to the given angle.
- The forward() method moves the turtle to the specified distance.
- The listen() method sets focus on the turtle screen to capture events.
- The onkey() method invokes the method specific to the captured keystroke. The first argument of onkey() is the function to be called and the second argument is the key.
- The Up,Down,Left and Right are the corresponding arrow keys on the keyboard.
- Add mainloop() command, it prevents the application from terminating before the user actually clicks the exit option.
Program
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()
Output
Method 2: changing color
This is similar to the previous example with the addition of few more keys. Now we have added keys to change the color of the line.
- If the user presses r it turns red,
- If g it turns green and if b it turns blue.
- For resetting the line color to black the user must press z.
Also, the thickness of the line is increased by setting the width o the turtle to 5px using the width() method.
Program
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()
Output