Create a python code to solve this exercise: The Koch snowflake is a fractal shape. At level 0, the shape is an equilateral triangle. At level 1, each line segment is split into four equal parts, producing an equilateral bump in the middle of each segment. Figure 7-15 shows these shapes at levels 0, 1, and 2. (See the picture attached) At the top level, the script uses a function drawFractalLine to draw three fractal lines. Each line is specified by a given distance, direction (angle), and level: The initial angles are 0, -120, and 120 degrees. The initial distance can be any size, such as 200 pixels. If the level is 0, then the turtle moves the given distance in the given direction. Otherwise, the function draws four fractal lines with ⅓ of the given distance, angles that produce the given effect, and the given level minus 1. The function drawFractalLine is recursive. Write a script that draws the Koch snowflake. Define a function main that will draw a Koch snowflake with the following parameters when the program is run: Width = 200 Height = 200 Size = 150 Level = 4
Create a python code to solve this exercise:
The Koch snowflake is a fractal shape. At level 0, the shape is an equilateral triangle. At level 1, each line segment is split into four equal parts, producing an equilateral bump in the middle of each segment. Figure 7-15 shows these shapes at levels 0, 1, and 2.
(See the picture attached)
At the top level, the script uses a function drawFractalLine to draw three fractal lines. Each line is specified by a given distance, direction (angle), and level:
- The initial angles are 0, -120, and 120 degrees.
- The initial distance can be any size, such as 200 pixels.
- If the level is 0, then the turtle moves the given distance in the given direction. Otherwise, the function draws four fractal lines with ⅓ of the given distance, angles that produce the given effect, and the given level minus 1.
The function drawFractalLine is recursive.
Write a script that draws the Koch snowflake.
Define a function main that will draw a Koch snowflake with the following parameters when the program is run:
- Width = 200
- Height = 200
- Size = 150
- Level = 4
import turtle
#recursive method to draw a fractal line with given distance, angle and levels
def drawFractalLine(distance,angle,level):
#checking if level is 0 (base condition)
if level==0:
#turning left angle degrees
turtle.left(angle)
#moving turtle in distance
turtle.forward(distance)
#turning right to get back to original direction
turtle.right(angle)
return #end of recursive calls
#drawing a line 1/3 rd of the total distance in same direction, with one less level
drawFractalLine(distance/3,angle,level-1)
# drawing a line 1/3 rd of the total distance in direction +60 degrees,
# with one less level
drawFractalLine(distance / 3, angle + 60, level - 1)
# drawing a line 1/3 rd of the total distance in direction -60 degrees,
# with one less level
drawFractalLine(distance / 3, angle - 60, level - 1)
# drawing a line 1/3 rd of the total distance in same direction, with one less level
drawFractalLine(distance / 3, angle, level - 1)
#method to draw a koch snowflake of given width and levels
def drawKochSnowflake(width,levels):
#drawing first fractal line
drawFractalLine(width, 0, levels)
# drawing second fractal line
drawFractalLine(width, -120, levels)
# drawing third fractal line
drawFractalLine(width, 120, levels)
def main():
#maximum speed for drawing
turtle.speed(0)
#no delay when drawing
turtle.Screen().delay(0)
#using 200*200 screen size
turtle.setup(200,200)
#pen up, moving to somewhere near top left
turtle.up()
turtle.goto(-75,50)
#pen down
turtle.down()
#drawing a snowflake with size=150 and levels = 4
drawKochSnowflake(150,4)
#hiding turtle after drawing
turtle.ht()
#finishing drawing
turtle.done()
main()
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 2 images