Compare commits

..

No commits in common. "9c2c2ed5206790926526d0adbbb72effc2f37ab5" and "b517a3a9e41649c5300394a80736bc588d92fc85" have entirely different histories.

11 changed files with 3 additions and 292 deletions

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

View File

@ -1,30 +1,3 @@
# (Drawing project)
(
Halloween Theme
A spider descends from its web, then expands rapidly to fill the entire screen before bursting like a firework
)
## Description
(1. Draw the spider web with the spider
2. Make the spider descend.
3. Rise up the spider and make it bigger
4. At some point, add change it to firework effect
![1,2's effect was like this](spider.gif)
![4 will be like this](Fireworks.gif)
)
## Planning
(1. Draw the spider web with the spider
2. Make the spider descend.
3. Rise up the spider and make it bigger
4. At some point, add change it to firework effect )
# Grace Proposal of Drawing Program for LAI 676
## Description

Binary file not shown.

View File

@ -1,28 +1,7 @@
# drawing.py
# ----------Not sure if I sumbmit it right or not
# By ____Grace__________
# ----------
# By ____(you)___________
#
# (Halloween Theme with Spider exploding)
# (Briefly describe what this program does.)
from turtle import *
from superturtle import *
from superturtle.movement import *
from spider import *
from spiderweb import *
def drawing(side_length):
draw_web(side_length)
penup()
goto(0, 0)
setheading(0)
pendown()
draw_spider()
draw_connection_line()
hideturtle()
done()
drawing(300)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 569 KiB

View File

@ -1,65 +0,0 @@
from turtle import *
from superturtle import *
from superturtle.movement import *
from turtle import *
def draw_circle(radius, x, y, color=None):
"Draw a circle with the given radius at the (x, y) position. Optionally fill with color."
penup()
goto(x, y - radius) # Move to the correct start point
pendown()
if color:
fillcolor(color) # Set the fill color
begin_fill() # Start filling the circle with color
circle(radius) # Draw the circle
if color:
end_fill() # End the filling
def draw_spider():
# Step 1: Draw the big circle (spider body) on top of the small circle
draw_circle(60, 30, 60, color="grey")
# Step 2: Draw the small circle (spider head)
draw_circle(20, 30, 0, color="black")
# Step 3: Draw legs on big circle
draw_legs(60, 30, 60)
def draw_legs(radius, x, y):
"Draws legs starting from the perimeter of the big circle (spider's body)"
leg_length = 50 # Length of the legs
pensize(4)
# Draw legs at equal angles from the top of the big circle
angles = [-60, -30, 0, 30, 150, 180, 210, 240] # Angles for legs (top-left, top-right, and bottom)
for angle in angles:
penup()
goto(x, y) # Go to the center of the big circle
setheading(angle) # Set the heading to the desired angle
forward(radius) # Move forward to the perimeter of the big circle
pendown()
forward(leg_length) # Draw the leg
penup()
backward(leg_length) # Move back to the perimeter of the big circle
def draw_connection_line():
"Draw a line from the top of the big circle (head) to the center of the small circle (body)"
penup()
goto(30, 400)
pendown()
goto(30, 120) # Draw a line to the center of the small circle (spider's body)
penup()
goto(0, 0)
# Draw the spider
# draw_spider()
# draw_connection_line()
# hideturtle()
# done()

View File

@ -1,121 +0,0 @@
from turtle import *
from superturtle import *
from superturtle.movement import *
segment_positions = []
def draw_web_line(side_length):
global segment_positions
fly(-350, 350)
for side in range(5):
draw_segmented_line(side_length)
right(22.5)
fly(-350, 350)
#right(22.5)
def draw_segmented_line(side_length):
"Draws a line with 4 equal segments and marks the points"
segment_length = side_length / 4
line_segments = []
for segment in range(4):
forward(segment_length)
mark_point() # Mark the points at each segment
line_segments.append(pos())
segment_positions.append(line_segments)
def mark_point():
"Marks a point at the current location"
dot(5, "black") # Draw a dot to mark the segment points
def connect_segments():
"Connects the corresponding segment points of adjacent lines"
global segment_positions
for i in range(4): # Iterate over the 4 segments
for j in range(5): # Iterate over the 5 lines
next_j = (j + 1) % 5 # To wrap around to the first line after the fifth
# Skip connections if either segment is near the x-axis or y-axis
if segment_positions[j][i][0] == -350 or segment_positions[next_j][i][1] == 350:
continue
penup()
goto(segment_positions[j][i]) # Go to the current segment
pendown()
goto(segment_positions[next_j][i]) # Draw a line to the next segment
# Main function to draw the web
def draw_web(side_length):
draw_web_line(side_length)
connect_segments()
# Draw the web lines
# draw_web(300)
# hideturtle()
# done()
def draw_circle(radius, x, y, color=None):
"Draw a circle with the given radius at the (x, y) position. Optionally fill with color."
penup()
goto(x, y - radius) # Move to the correct start point
pendown()
if color:
fillcolor(color) # Set the fill color
begin_fill() # Start filling the circle with color
circle(radius) # Draw the circle
if color:
end_fill() # End the filling
def draw_spider():
# Step 1: Draw the big circle (spider body) on top of the small circle
draw_circle(60, 30, 60, color="grey")
# Step 2: Draw the small circle (spider head)
draw_circle(30, 30, 0, color="black")
# Step 3: Draw legs on big circle
draw_legs(60, 30, 60)
def draw_legs(radius, x, y):
"Draws legs starting from the perimeter of the big circle (spider's body)"
leg_length = 50 # Length of the legs
pensize(4)
# Draw legs at equal angles from the top of the big circle
angles = [-60, -30, 0, 30, 150, 180, 210, 240] # Angles for legs (top-left, top-right, and bottom)
for angle in angles:
penup()
goto(x, y) # Go to the center of the big circle
setheading(angle) # Set the heading to the desired angle
forward(radius) # Move forward to the perimeter of the big circle
pendown()
forward(leg_length) # Draw the leg
penup()
backward(leg_length) # Move back to the perimeter of the big circle
def draw_connection_line():
"Draw a line from the top of the big circle (head) to the center of the small circle (body)"
penup()
goto(30, 400)
pendown()
goto(30, 120) # Draw a line to the center of the small circle (spider's body)
penup()
goto(0, 0)
def drawing(side_length):
draw_web(side_length)
penup()
goto(0, 0)
setheading(0)
pendown()
draw_spider()
draw_connection_line()
hideturtle()
done()
drawing(300)

View File

@ -1,55 +0,0 @@
from turtle import *
from superturtle import *
from superturtle.movement import *
segment_positions = []
def draw_web_line(side_length):
global segment_positions
fly(-350, 350)
for side in range(5):
draw_segmented_line(side_length)
right(22.5)
fly(-350, 350)
#right(22.5)
def draw_segmented_line(side_length):
"Draws a line with 4 equal segments and marks the points"
segment_length = side_length / 4
line_segments = []
for segment in range(4):
forward(segment_length)
mark_point() # Mark the points at each segment
line_segments.append(pos())
segment_positions.append(line_segments)
def mark_point():
"Marks a point at the current location"
dot(5, "black") # Draw a dot to mark the segment points
def connect_segments():
"Connects the corresponding segment points of adjacent lines"
global segment_positions
for i in range(4): # Iterate over the 4 segments
for j in range(5): # Iterate over the 5 lines
next_j = (j + 1) % 5 # To wrap around to the first line after the fifth
# Skip connections if either segment is near the x-axis or y-axis
if segment_positions[j][i][0] == -350 or segment_positions[next_j][i][1] == 350:
continue
penup()
goto(segment_positions[j][i]) # Go to the current segment
pendown()
goto(segment_positions[next_j][i]) # Draw a line to the next segment
# Main function to draw the web
def draw_web(side_length):
draw_web_line(side_length)
connect_segments()
# Draw the web lines
# draw_web(300)
# hideturtle()
# done()