drawing.py

This commit is contained in:
njmason2
2025-09-20 17:40:02 -04:00
parent 032cc7421a
commit b38e695ae9

View File

@@ -1,7 +1,7 @@
# drawing.py
# ----------
# Nelson Mason
# updated 9-19-2025
# updated 9-21-2025
# Due by 9-29-2025
# (This is an animation of a sunrise.)
@@ -14,64 +14,66 @@ from superturtle.animation import animate
# 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. The elapsed_time will be linked to the
# animation frames. I will be using color shading techniques in the animation.
# be apparent only in the sky, as it rises. I will be using color shading techniques in the animation.
def sky():
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)
def sun():
circle(75,360)
def sun_reposition():
left(90)
forward(20)
right(90)
penup() # reposition the turtle before drawing the 3 objects
right(180)
forward(200)
left(90)
forward(50)
left(90)
pendown()
begin_fill() # draw the sky
fillcolor("dark blue")
sky()
end_fill()
begin_fill() # draw the ground
fillcolor("black")
ground()
end_fill()
penup()
right(90)
forward(150)
left(90)
forward(200)
pendown()
# for frame in animate(40, loop=True):
# x = frame.interpolate(0,15)
for x in range(15):
begin_fill() # draw the sun
fillcolor("red")
sun()
sun_reposition()
end_fill()
input()
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()