Koch Curve or Koch SnowflakeConstructionRepresentation as Lindenmayer systemTo create a Koch Curve :
What is Koch Curve?
The Koch snowflake (also known as the Koch curve, Koch star, or Koch island) is a mathematical curve and one of the earliest fractal curves to have been described. It is based on the Koch curve, which appeared in a 1904 paper titled “On a continuous curve without tangents, constructible from elementary geometry” by the Swedish mathematician Helge von Koch.
The progression for the area of the snowflake converges to 8/5 times the area of the original triangle, while the progression for the snowflake’s perimeter diverges to infinity. Consequently, the snowflake has a finite area bounded by an infinitely long line.
Construction
Step1:
Draw an equilateral triangle. You can draw it with a compass or protractor, or just eyeball it if you don’t want to spend too much time drawing the snowflake.
Step2:
Divide each side in three equal parts. This is why it is handy to have the sides divisible by three.
Step3:
Draw an equilateral triangle on each middle part. Measure the length of the middle third to know the length of the sides of these new triangles.
Step4:
Divide each outer side into thirds. You can see the 2nd generation of triangles covers a bit of the first. These three line segments shouldn’t be parted in three.
Step5:
Draw an equilateral triangle on each middle part.
Representation as Lindenmayer system
The Koch curve can be expressed by the following rewrite system (Lindenmayer system):
Alphabet : F
Constants : +, ?
Axiom : F
Production rules: F ? F+F–F+F
Here, F means “draw forward”, – means “turn right 60°”, and + means “turn left 60°”.
To create the Koch snowflake, one would use F++F++F (an equilateral triangle) as the axiom.
To create a Koch Curve :
# Python program to print partial Koch Curve. # importing the libraries : turtle standard # graphics library for python from turtle import * #function to create koch snowflake or koch curve def snowflake(lengthSide, levels): if levels = = 0 : forward(lengthSide) return lengthSide / = 3.0 snowflake(lengthSide, levels - 1 ) left( 60 ) snowflake(lengthSide, levels - 1 ) right( 120 ) snowflake(lengthSide, levels - 1 ) left( 60 ) snowflake(lengthSide, levels - 1 ) # main function if __name__ = = "__main__" : # defining the speed of the turtle speed( 0 ) length = 300.0 # Pull the pen up – no drawing when moving. penup() # Move the turtle backward by distance, # opposite to the direction the turtle # is headed. # Do not change the turtle’s heading. backward(length / 2.0 ) # Pull the pen down – drawing when moving. pendown() snowflake(length, 4 ) # To control the closing windows of the turtle mainloop() |
Output:
To create a full snowflake with Koch curve, we need to repeat the same pattern three times. So lets try that out.
# Python program to print complete Koch Curve. from turtle import * # function to create koch snowflake or koch curve def snowflake(lengthSide, levels): if levels = = 0 : forward(lengthSide) return lengthSide / = 3.0 snowflake(lengthSide, levels - 1 ) left( 60 ) snowflake(lengthSide, levels - 1 ) right( 120 ) snowflake(lengthSide, levels - 1 ) left( 60 ) snowflake(lengthSide, levels - 1 ) # main function if __name__ = = "__main__" : # defining the speed of the turtle speed( 0 ) length = 300.0 # Pull the pen up – no drawing when moving. # Move the turtle backward by distance, opposite # to the direction the turtle is headed. # Do not change the turtle’s heading. penup() backward(length / 2.0 ) # Pull the pen down – drawing when moving. pendown() for i in range ( 3 ): snowflake(length, 4 ) right( 120 ) # To control the closing windows of the turtle mainloop() |
Output:
Contact Us