Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967,...
Transcript of Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967,...
![Page 1: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/1.jpg)
Python 3 – Turtle graphics
Lecture 18 – COMPSCI111/111G
1
![Page 2: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/2.jpg)
Today’s lecture
The Turtle graphics package Brief history Basic commands Drawing shapes on screen
2
![Page 3: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/3.jpg)
Logo and Turtle graphics
In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called Logo.
Papert added commands to Logo so that he could control a turtle robot, which drew shaped on paper, from his computer
Turtle graphics is now part of Python
Using the Turtle involves instructing the turtle to move on the screen and draw lines to create the desired shape
3
![Page 4: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/4.jpg)
The Turtle package
Some functions are part of Python’s core libraries, in other words they are ‘built-in’ print() input() float()
Other functions need to be imported into your Python program
The turtle module needs to be imported at the start of any Python program that uses it:import turtle
4
![Page 5: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/5.jpg)
Basic Turtle commands
There are four basic turtle commands
turtle.forward(x) Moves turtle forward in direction it is facing by x steps
turtle.back(x) Moves turtle backward from its facing direction by x steps
turtle.left(x) Turns the turtle x degrees counterclockwise
turtle.right(x) Turns the turtle x degrees clockwise
5
![Page 6: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/6.jpg)
Turtle example
Using the Python interpreter in IDLE to demonstrate how to use Turtle graphics
First, import the turtle package
6
>>> import turtle>>>
![Page 7: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/7.jpg)
Turtle example We are going to draw a right-angled triangle
Important information: The turtle appears as an icon Initial position: (0, 0) Initial direction: East (0°) Colour: black Line width: 1 pixel Pen: down (ready to draw)
7
y-
ax
is
(0,0)
90°
180° 0°
270°
x-axis (0,0)
![Page 8: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/8.jpg)
Algorithm
draw a line
Turn 90 degrees left (anti-clockwise)
draw a line
Turn 135 degrees left (anti-clockwise)
draw a line 8
![Page 9: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/9.jpg)
Turtle example
Step 1: Draw a line
9
>>> import turtle>>> >>> turtle.forward(200)>>>
1. Draw a line
![Page 10: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/10.jpg)
Turtle example
Note how the turtle is now facing upward after being turned 90 degrees left
10
>>> import turtle>>> >>> turtle.forward(200)>>> turtle.left(90)>>>
90degree
Initial direction: 0
![Page 11: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/11.jpg)
Turtle example
Step 3: draw a line
11
>>> import turtle>>> >>> turtle.forward(200)>>> turtle.left(90)>>> turtle.forward(200)>>>
![Page 12: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/12.jpg)
Turtle example
Step 4: turn 135 degree left (anti-clockwise)
12
>>> import turtle>>> >>> turtle.forward(200)>>> turtle.left(90)>>> turtle.forward(200)>>> turtle.left(135)>>>
135degree
current direction
![Page 13: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/13.jpg)
Turtle example
Working out the length of the longest side using the Pythagoras’ formula
13
>>> import turtle>>> >>> turtle.forward(200)>>> turtle.left(90)>>> turtle.forward(200)>>> turtle.left(135)>>> c = ((200**2)+(200**2))**0.5 #around 283 steps
![Page 14: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/14.jpg)
Turtle example
Step 6: draw a line
The finished image
14
>>> import turtle>>> >>> turtle.forward(200)>>> turtle.left(90)>>> turtle.forward(200)>>> turtle.left(135)>>> c = ((200**2)+(200**2))**0.5)>>> turtle.forward(c)
![Page 15: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/15.jpg)
Turtle example
We can use loops when drawing shapes using Turtle graphics
Write a program that will draw a square using a loop
15
Draw a line Turn 90 degree left X 4 times
![Page 16: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/16.jpg)
Turtle example
We can use loops when drawing shapes using Turtle graphics
Write a program that will draw a square using a loop
import turtle
count = 0while count < 4:
turtle.forward(200)turtle.left(90)count = count + 1
16
![Page 17: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/17.jpg)
Exercise 1
Write a Python program that draws a rectangle. The long sides must be 300 steps long and the short sides must be 150 steps long
17
TRY IT OUT!
Draw a long line
Turn 90 degree left
Draw a short line
Turn 90 degree left
Draw a long line
Turn 90 degree left
Draw a short line
Turn 90 degree left
![Page 18: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/18.jpg)
Turtle example
Write a program that will draw a circle
Steps: Draw a short line (2 pixels) Turn 1 degree Repeat the above steps 360 times
18
![Page 19: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/19.jpg)
Turtle example
Write a program that will draw a circle
import turtlecount = 0while(count < 360):
turtle.forward(2)turtle.left(1)count = count + 1
print("Finished!")
19
![Page 20: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/20.jpg)
Question Consider the following program:import turtlecount = 0length = 100while count < 4:
turtle.forward(length)turtle.left(90)count = count + 1length = length - 10
Which of the following pictures demonstrates the output generated by the program above?
20
![Page 21: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/21.jpg)
Exercise 2
How to draw a star? How many steps do you need? What is the size/length for each step? E.g. 400 pixels What is the turning angle for each step?
21
![Page 22: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/22.jpg)
Exercise 3 Draw the shape that is produced by the following
Python program:import turtlecount = 0while(count < 180):
turtle.forward(2)turtle.right(1)count = count + 1
turtle.right(45)turtle.forward(300)turtle.left(90)turtle.back(150)turtle.right(45)turtle.back(250)
22
TRY IT OUT!
![Page 23: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/23.jpg)
Exercise 4
Draw the shape that is produced by the following Python program:
23
TRY IT OUT!
import turtle big_line = 100little_line = 50angle = 90
turtle.left(angle)turtle.forward(big_line)count = 0while count < 4:
turtle.right(angle//2)if count != 3:
turtle.forward(little_line)else:
turtle.forward(big_line)count = count + 1
turtle.right(90)turtle.forward(130)
![Page 24: Python 3 – Turtle graphics - Auckland · 2019. 1. 23. · Logo and Turtle graphics In 1967, Seymour Papert and Wally Feurzeig created an interpretive programming language called](https://reader035.fdocuments.in/reader035/viewer/2022081622/6134f280dfd10f4dd73c0e85/html5/thumbnails/24.jpg)
Summary
The Turtle package must be imported into every Python program that uses it
The Turtle has four basic commands; forward, back, left and right
24