Code:
import turtle
import math
import time
screen = turtle.Screen()
screen.setup(700, 700)
screen.bgcolor("#020208")
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.width(2)
colors = [
"#00ffff", "#7c4dff",
"#ff2d75", "#00ff9d",
"#ffe600"
]
for layer in range(35):
t.color(colors[layer % len(colors)])
t.penup()
for i in range(180):
x = -260 + i * 3
wave = math.sin(i * 0.09 + layer * 0.35) * (35 + layer)
y = wave + layer * 2
if i == 0:
t.goto(x, y)
t.pendown()
else:
t.goto(x, y)
screen.update()
time.sleep(0.003)
time.sleep(0.08)
# ✨ Center glow
for r in range(30, 2, -3):
t.penup()
t.goto(0, -r)
t.dot(r, colors[r % len(colors)])
screen.update()
time.sleep(0.06)
turtle.done()
Explanation:
1. Import Libraries
import turtle
import math
import time
turtle → Creates the drawing.
math → Calculates the wave pattern.
time → Controls animation speed.
2. Create the Screen
screen = turtle.Screen()
screen.setup(700, 700)
screen.bgcolor("#020208")
Creates a 700 × 700 canvas.
Sets a dark background.
3. Configure the Turtle
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.width(2)
Creates the turtle.
Hides the turtle cursor.
Sets maximum speed.
Sets line thickness to 2.
4. Define Neon Colors
colors = [
"#00ffff", "#7c4dff",
"#ff2d75", "#00ff9d",
"#ffe600"
]
Stores five neon colors.
These colors are used for different wave layers.
5. Create Multiple Wave Layers
for layer in range(35):
Creates 35 separate wave layers.
Each layer forms part of the tunnel effect.
6. Select the Layer Color
t.color(colors[layer % len(colors)])
Cycles through the neon colors.
layer % len(colors) prevents the index from going out of range.
7. Prepare for Drawing
t.penup()
Lifts the pen before moving to the starting point.
8. Generate Wave Points
for i in range(180):
Creates 180 points for every wave.
9. Calculate X Position
x = -260 + i * 3
Starts at -260.
Moves 3 pixels to the right each time.
10. Calculate the Wave
wave = math.sin(i * 0.09 + layer * 0.35) * (35 + layer)
Uses sin() to create a smooth wave.
layer * 0.35 shifts each layer.
(35 + layer) gradually increases the wave size.
11. Calculate Y Position
y = wave + layer * 2
Combines the wave movement with the layer offset.
Moves each layer slightly upward.
12. Start the Wave
if i == 0:
t.goto(x, y)
t.pendown()
Moves to the first point without drawing.
Then starts drawing the wave.
13. Continue the Wave
else:
t.goto(x, y)
Connects each calculated point.
Creates the continuous wave line.
14. Animate the Wave
screen.update()
time.sleep(0.003)
Updates the screen.
Adds a tiny delay for smooth animation.
15. Pause Between Layers
time.sleep(0.08)
Adds a short pause after each wave layer.
Makes the tunnel formation visible.
16. Create the Center Glow
for r in range(30, 2, -3):
Creates several shrinking circles.
The radius decreases from 30 to 3.
17. Draw the Glow
t.penup()
t.goto(0, -r)
t.dot(r, colors[r % len(colors)])
Moves to the center.
Draws colorful dots of decreasing size.
Creates a glowing-center effect.
18. Animate the Glow
screen.update()
time.sleep(0.06)
Updates the screen.
Adds a small delay between glow layers.
19. Finish
turtle.done()
Keeps the Turtle window open.
Ends the animation.

0 Comments:
Post a Comment