drawing.py

This commit is contained in:
njmason2
2025-09-22 13:23:59 -04:00
parent b38e695ae9
commit ddfa594ff9

View File

@@ -1,7 +1,7 @@
# drawing.py # drawing.py
# ---------- # ----------
# Nelson Mason # Nelson Mason
# updated 9-21-2025 # updated 9-22-2025
# Due by 9-29-2025 # Due by 9-29-2025
# (This is an animation of a sunrise.) # (This is an animation of a sunrise.)
@@ -10,15 +10,20 @@ from superturtle.animation import animate
# define 3 objects # define 3 objects
# sky, ground, sun # sky, ground, sun
# In the actual animation, the sun will start off entirely below the horizon, # 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), # (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 # 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. # be apparent only in the sky, as it rises. I will be using color shading techniques in the animation.
# I played around with the RGB settings. I left out drawing the sun
# casting a shadow on the ground while rising.
# Perhaps for another project?
# YOU CAN'T BEAT MOTHER NATURE FOR A SUNRISE!
def sky(): def sky():
begin_fill() # draw the sky begin_fill() # draw the sky
fillcolor("dark blue") fillcolor(0.05, 0.05, a/275) # as the sun rises sky color changes from black to blue
for x in range(2): for x in range(2):
forward(400) forward(400)
left(90) left(90)
@@ -28,7 +33,7 @@ def sky():
def ground(): def ground():
begin_fill() # draw the ground begin_fill() # draw the ground
fillcolor("black") fillcolor(0.05, a/1100, 0.05) # as the sun rises ground color changes from black to dark green
for x in range(2): for x in range(2):
forward(400) forward(400)
right(90) right(90)
@@ -36,10 +41,11 @@ def ground():
right(90) right(90)
end_fill() end_fill()
def sun(): def sun():
begin_fill() # draw the sun begin_fill() # draw the sun
fillcolor("red") fillcolor(1, a/550, 0) # as the sun rises sun color changes from red to orange
circle(-62,360) circle(-75,360)
end_fill() end_fill()
def sun_position(a): # this must be called to get the sun to move up (rise) def sun_position(a): # this must be called to get the sun to move up (rise)
@@ -49,7 +55,9 @@ def sun_position(a): # this must be called to get the sun to move up (rise)
right(90) right(90)
pendown() pendown()
for frame in animate(frames=1000): for frame in animate(frames=550, loop=True):
a = frame.interval=1100 # the frames-to-interval ratio controls the animation speed
a = frame.interpolate(0, 275) # low and high positions of the sun as it rises
penup() # reposition the turtle before drawing the sky penup() # reposition the turtle before drawing the sky
right(180) right(180)
forward(200) forward(200)
@@ -62,8 +70,6 @@ for frame in animate(frames=1000):
forward(200) # starting the drawing of the sun right on the horizon forward(200) # starting the drawing of the sun right on the horizon
# makes it easier to calculate everything else # makes it easier to calculate everything else
pendown() 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_position(a)
sun() # draws the sun sun() # draws the sun
penup() # reposition the turtle before drawing the ground penup() # reposition the turtle before drawing the ground