Download presentation
1
Main Points: - Python Turtle - Fractals
Programming Training Main Points: - Python Turtle - Fractals
2
Arrays / Lists Python lists represent sequence of [similar] elements
- between [ ] - separated by , - which are indexed. [ ] represents lists / arrays. Examples: x = [1, 2, 3, 1, 0] list of 5 int numbers name = [‘s’, ’a’, ’b’, ’i’, ’n’] list of 5 string elements list = [1, 2, ‘sabin’, [0, 1, 3]] list with elements of different nature
3
Arrays / Lists Indexing
Python lists elements can be indexed using indices 0, 1, 2, …. A list l with n elements has the elements l[0], l[1], l[2],…, l[n-1]. l represents the list while l[i] is an element of the list. the first element of the list is indexed with 0. it is possible to have negative indexing. For a list l, the number of elements is given by the function len len(l) number of elements in l. ANY COMPUTATION WITH ARRAYS MUST USE THE LOOP FOR.
4
Screen The screen is a rectangle of pixels on which we can draw.
The screen origin is usually in the centre. Each pixel will have two coordinates which are float numbers.
5
Python Turtle turtle – a Python module / library for drawing.
What can turtles (as animals) do? Move forward or backward. Turn left or right. Retreat the head into the shell. Turtle-like Graphics Pens have: x, y give the turtle pen coordinates. dir the direction to go in radians. pen the pen’s status (pen=1 draws line)
6
Python Turtle turtle – a Python module / library for drawing.
Function to Move and Draw forward(d) – pen moves forward for distance d on the direction to go backward(d) – pen moves backward for distance on the direction to go right(angle) – pen turns right with angle (degrees) left(angle) – pen turns left with angle (degrees) goto(x, y) – pen moves to the point (x,y) drawing a line dot(size, color) – pen draws a dot of specified size with the given color circle(radius) – pen draws a circle with the specified radius circle(radius)
7
Python Turtle turtle – a Python module / library for drawing.
Function to Control the pen penup() – pen moves up so no drawing pendown() – pen goes down so it can draw width(w) – sets the thickness of the line color(colorname) – pen color is set as colorname color(r, g, b) – the color is set based on the r, g, b values.
8
Python Turtle turtle – a Python module / library for drawing.
Function to Control the Screen bgcolor(color) – the screen background color is set to color. clear() – the screen is cleared. screensize() – it returns the width and the height of the screen
9
Python Turtle How to work with: Make a pen object
pen = Pen() Set the pen features like color, width, etc pen.color(‘red’) pen.width(3) Make you drawing using the move/draw functions pen.forward(100) pen.left(90)
10
Python Turtle What is the outcome of Can be re written as
pen.forward(100) pen.left(90) Can be re written as for i in range(4) : pen.forward(100) pen.left(90)
11
Python Turtle – Draw a Triangle
Make a pen and set some features Draw the triangle A(x1, y1)B(x2, y2)C(x3,y3) - move the pen to A(x1, y1) - Draw AB using goto(x2, y2) - Draw BC using goto(x3, y3) - Draw CA using goto(x1, y1)
12
Python Turtle – Draw a Random Circle
random a new module to generate random numbers random.randint(a,b) generate a random integer between a and b random.random() generate a random float between [0, 1) Drawing a random circle - get a random radius - get a random color - get a random width - draw the circle
13
Turtle Random Art Develop methods to draw random shapes
Drawing few similar random shapes in your screen Draw 30 random circles + 20 random triangles
14
Python Recursive Functions
A Python function can call any known / seen function from the imported modules or from the file. A function is recursive when it calls itself. Important Rule: A recursive method must have - a termination step that solves directly the problem - a recursion step.
15
Python Recursive Functions
Fibonacci sequence: 1, 1, 2, 3, 5, 8, 13, 21, … fib(0) = fib(1) = 1 and fib(n) = fib(n-1)+ fib(n-2) def fib(n): # termination if n== 0 or n==1 : return 1 # endif return fib(n-1) + fib(n-2) # end fib
16
Recursive / Turtle Graphics
1. Define Recursively the figure Fn. - Termination: give the shape of F0 (point, line, etc) - Recursion: define Fn based on Fn-1. 2. Use a Turtle object to draw the figure. - The direction of the Turtle object must be preserved. Turtle Geometry represents the simplest way to construct geometrical fractals. Important Fractals: Trees, Koch’s curves, Sierpinski’s curves etc.
17
The Binary Tree The Binary Tree T(n,l) n is the order or age
l is the length
18
The Binary Tree The Binary Tree T(n,l) T(0,l)= nothing
n is the order or age l is the length T(0,l)= nothing T(n,l) is defined as follows: - construct the trunk - left 45 (PI/4) - construct T(n-1,l/2) - right 90 (PI/2) - go back at the root
19
The Binary Tree
20
The Fern F(n,l) The Fern Tree F(n,l) n - the order or the age
l – the length of the curve
21
The Fern F(n,l) The Fern F(n,l)
n - the order or the age l – the length of the curve The Fern F(n,l) is a tree with 3 asymmetric branches. The Fern depends the braches angles and the branches trunks
22
The Fern F(n,l) The Fern F(n,l) is defined by:
F(0,l) is a dot or nothing. F(n,l) is recursively defined by: Forward (0.3*l) Left 55; Construct F(n-1, l/2);Right 55 Forward (0.7*l) Right 40; Construct F(n-1, l/2); Left 40 Forward l Left 5; Construct F(n-1, 0.8*l); Right 5 Backward 2*l
23
The Fern F(n,l) def fern(n,l): } if n==0 or l<2: return # endif
CONCEPT 4 def fern(n,l): if n==0 or l<2: return # endif pen.forward (0.3*l); pen.left(55); fern(n-1, l/2);pen.right(55); pen.forward (0.7*l); pen.right(40); fern(n-1, l/2); pen.left(40); pen.forward(l); pen.left(5); fern(n-1, 0.8*l); pen.right(5); pen.backward(2*l); }
24
The Koch Curve The Koch Curve K(n,l) n - the order or the age
l – the length of the curve
25
The Koch Curve The Koch Curve K(n,l)
CONCEPT 5 The Koch Curve K(n,l) n - the order or the age l – the length of the curve K(n,l) is defined as follows: The Koch Curve K(n,l) is defined by - construct K(n-1,l/3); - left 60 (PI/3); construct K(n-1,l/3) - right 120 (2PI/3); construct K(n-1,l/3)
26
The Koch Curve The snow flake F(n,k)
- construct K(n,l); left 120 (2PI/3); F(n,k) is an infinite curve bounding a finite area.
27
The Koch Curve def koch(n, l): if l<2 or n==0: def flake(n, l):
t.forward(l) return #endif koch(n-1,l/3) pen.left(60) pen.right(120) koch(n-1,l/3); # end koch def flake(n, l): for in range(3): koch(n,l,g) t.left(120) # endfor # end flake
28
The Sierpinski Curve S(n,l)
n - the order or the age l – the length of the curve S(n,l) is formed with 4 S(n-1,l)
29
S(n,l) is recursively defined by
The Sierpinski Curve S(0,l) is nothing S(n,l) is recursively defined by Construct S(n-1,l) Right 45; Forward d; Right 45; Construct S(n-1,l); Left 90;Forward l; Left 90;
30
To do List Solve the HW problems. Read more about the turtle module
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.