# drawing.py # ---------- # Nelson Mason # updated 9-21-2025 # Due by 9-29-2025 # (This is an animation of a sunrise.) from turtle import * from superturtle.animation import animate # define 3 objects # sky, ground, sun # In the actual animation, the sun will start off entirely below the horizon, # (where the sky meets the ground), hidden by the ground, and will slowly rise (move up the screen), # with the sun, sky, and ground changing color. The disk of the sun will # be apparent only in the sky, as it rises. I will be using color shading techniques in the animation. def sky(): begin_fill() # draw the sky fillcolor("dark blue") for x in range(2): forward(400) left(90) forward(300) left(90) end_fill() def ground(): begin_fill() # draw the ground fillcolor("black") for x in range(2): forward(400) right(90) forward(150) right(90) end_fill() def sun(): begin_fill() # draw the sun fillcolor("red") circle(-62,360) end_fill() def sun_position(a): # this must be called to get the sun to move up (rise) penup() left(90) forward(a) right(90) pendown() for frame in animate(frames=1000): penup() # reposition the turtle before drawing the sky right(180) forward(200) left(90) forward(50) left(90) pendown() sky() penup() # reposition the turtle before drawing the sun forward(200) # starting the drawing of the sun right on the horizon # makes it easier to calculate everything else pendown() a = frame.interval=200 # the frames-to-interval ratio controls the animation speed a = frame.interpolate(0, 275) # low and high positions of the sun as it rises sun_position(a) sun() # draws the sun penup() # reposition the turtle before drawing the ground right(180) forward(200) left(90) forward(+a) # increment to get to the correct starting point for # the next iteration(re-drawing) of the sun rising left(90) pendown() ground() # I want the ground to hide the sun (overlay), but not the sky (obviously) input()