Code:
import turtle
import math
import time
screen = turtle.Screen()
screen.setup(700, 700)
screen.bgcolor("#000000")
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.width(1)
colors = [
"#ff1744", "#ffea00",
"#00ff9d", "#00e5ff",
"#2979ff", "#d500f9"
]
# Draw many twisted ellipses
for i in range(75):
t.color(colors[i % len(colors)])
points = 120
phase = i * 0.055
for j in range(points + 1):
a = math.radians(j * 360 / points)
# Twisted oval
x = 260 * math.cos(a)
y = 125 * math.sin(a + phase)
# Slight rotation
rot = math.radians(i * 2.2)
X = x * math.cos(rot) - y * math.sin(rot)
Y = x * math.sin(rot) + y * math.cos(rot)
if j == 0:
t.penup()
t.goto(X, Y)
t.pendown()
else:
t.goto(X, Y)
screen.update()
time.sleep(0.035)
# Dark center
t.penup()
t.goto(0, -55)
t.dot(105, "#000000")
screen.update()
time.sleep(1)
turtle.done()
Explanation:
1. Import Libraries
import turtle
import math
import time
turtle → Used for drawing.
math → Used for trigonometric calculations.
time → Controls animation speed.
2. Create the Screen
screen = turtle.Screen()
screen.setup(700, 700)
screen.bgcolor("#000000")
Creates a 700 × 700 canvas.
Sets a black background.
3. Configure the Turtle
t = turtle.Turtle()
t.hideturtle()
t.speed(0)
t.width(1)
Creates the turtle.
Hides the cursor.
Sets maximum drawing speed.
Uses a thin line.
4. Define Neon Colors
colors = [
"#ff1744", "#ffea00",
"#00ff9d", "#00e5ff",
"#2979ff", "#d500f9"
]
Stores six bright neon colors.
Colors are reused for different ellipses.
5. Create Multiple Ellipses
for i in range(75):
Creates 75 twisted ellipse layers.
6. Select the Color
t.color(colors[i % len(colors)])
Cycles through the neon colors.
Each ellipse gets a different color.
7. Set Curve Parameters
points = 120
phase = i * 0.055
Uses 120 points for a smooth ellipse.
phase changes the shape of every layer slightly.
8. Generate Ellipse Points
for j in range(points + 1):
Loops through all points of the ellipse.
+1 helps close the curve.
9. Calculate the Angle
a = math.radians(j * 360 / points)
Divides the full 360° circle into 120 sections.
Converts the angle to radians.
10. Calculate the Oval Coordinates
x = 260 * math.cos(a)
y = 125 * math.sin(a + phase)
Calculates the X coordinate using cosine.
Calculates the Y coordinate using sine.
Different X/Y sizes create an oval.
phase creates the twisting effect.
11. Calculate Rotation
rot = math.radians(i * 2.2)
Rotates each ellipse slightly.
Every new layer gets an additional 2.2° rotation.
12. Rotate the X Coordinate
X = x * math.cos(rot) - y * math.sin(rot)
Applies a rotation transformation to the X position.
13. Rotate the Y Coordinate
Y = x * math.sin(rot) + y * math.cos(rot)
Applies the same rotation to the Y position.
Together, X and Y create the rotated ellipse.
14. Start Drawing the Ellipse
if j == 0:
t.penup()
t.goto(X, Y)
t.pendown()
Moves to the first point without drawing.
Starts drawing from that point.
15. Connect the Points
else:
t.goto(X, Y)
Connects all calculated points.
Forms the smooth twisted ellipse.
16. Animate Each Layer
screen.update()
time.sleep(0.035)
Updates the screen.
Adds a short delay between layers.
17. Create the Dark Center
t.penup()
t.goto(0, -55)
t.dot(105, "#000000")
Moves to the center.
Draws a large black circle.
Creates a dark central hole.
18. Display the Final Design
screen.update()
time.sleep(1)
Updates the final frame.
Keeps the design visible for one second.
19. Finish
turtle.done()
Keeps the Turtle window open.
Ends the program.

0 Comments:
Post a Comment