Create Mesmerizing Spiral Art in Python: The Rainbow Symphony Tutorial

20 Jul 2023 Balmiki Mandal 0 Python

Learn to Code a Breathtaking Rainbow Spiral Animation in Python

Full Source code: 

import turtle as t  #Importting the turtle graphics library 
import colorsys  #Importting the colorsys library,

t.bgcolor("black") #Setting the background color of the drawing window to black.
t.tracer(100) #Adjusts the drawing speed to make the animation smoother.
t.pensize(1) #Sets the thickness of the lines drawn by the turtle to 1 pixel.

h = 0.3  # Initializes a variable h to 0.3, 
for i in range(250):  #Starts a loop that will repeat 250 times, creating 250 shapes
    c = colorsys.hsv_to_rgb(h, 1, 1) #Converts an HSV color to an RGB color 
    h += 0.008  # Increment h for color variation     
    t.fillcolor(c) #Sets the fill color for the upcoming shape 
    t.begin_fill() # Starts the filling process for the shape.
    t.forward(i)  # Moves the turtle forward by a distance of i pixels,
    t.left(100)  # Turns the turtle to the left by 100 degrees.
    t.circle(30) # Draws a circle with a radius of 30 pixels.
    for j in range(2): #Creates a small loop within the main loop to draw two additional line segments 
        t.forward(i * j)  # Moves the turtle forward by a distance of i * j pixels.
        t.right(108)  # Turns the turtle to the right by 108 degrees.
    t.end_fill()   #Finishes the filling process for the shape.

t.done()  # Keep the turtle window open

 

Breakdown of this python animation:

Importing Modules:

  • import turtle as t: Imports the turtle module for drawing graphics and gives it a shorter alias t for convenience.
  • import colorsys: Imports the colorsys module, which provides functions for working with colors in different color systems.

2. Setting Up the Drawing Environment:

  • t.bgcolor("black"): Sets the background color of the drawing window to black.
  • t.tracer(100): Adjusts the drawing speed to make the animation smoother.
  • t.pensize(1): Sets the thickness of the lines drawn by the turtle to 1 pixel.

3. Creating a Colorful Spiral Pattern:

  • h = 0.3: Initializes a variable h to 0.3, which will be used to control the hue of the colors.
  • for i in range(250): Starts a loop that will repeat 250 times, creating 250 shapes.
    • c = colorsys.hsv_to_rgb(h, 1, 1): Converts an HSV color (Hue, Saturation, Value) to an RGB color (Red, Green, Blue) using the colorsys module. This creates a vibrant color based on the current value of h.
    • h += 0.008: Increments the value of h slightly for each iteration, resulting in a gradual change of colors throughout the pattern.
    • t.fillcolor(c): Sets the fill color for the upcoming shape to the newly generated color c.
    • t.begin_fill(): Starts the filling process for the shape.
    • t.forward(i): Moves the turtle forward by a distance of i pixels, effectively drawing a line segment.
    • t.left(100): Turns the turtle to the left by 100 degrees.
    • t.circle(30): Draws a circle with a radius of 30 pixels.
    • for j in range(2): Creates a small loop within the main loop to draw two additional line segments and turns, forming a pointed shape.
    • t.forward(i * j): Moves the turtle forward by a distance of i * j pixels.
    • t.right(108): Turns the turtle to the right by 108 degrees.
    • t.end_fill(): Finishes the filling process for the shape.

4. Keeping the Window Open:

  • t.done(): Keeps the turtle drawing window open until it's manually closed, allowing you to view the completed pattern.

In essence, this code generates a colorful, spiral-like pattern with pointed shapes on a black background, showcasing the creative possibilities of combining the turtle and colorsys modules in Python.

BY: Balmiki Mandal

Related Blogs

Post Comments.

Login to Post a Comment

No comments yet, Be the first to comment.