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(radius): # Step 1: Draw the big circle (spider body) on top of the small circle draw_circle(radius, 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(radius, 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(y): "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, y) # 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()