Presentation is loading. Please wait.

Presentation is loading. Please wait.

Main Points: - Python Turtle - Fractals

Similar presentations


Presentation on theme: "Main Points: - Python Turtle - Fractals"— Presentation transcript:

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


Download ppt "Main Points: - Python Turtle - Fractals"

Similar presentations


Ads by Google