generated from mwc/project_drawing
	drawing.py
This commit is contained in:
		
							
								
								
									
										24
									
								
								drawing.py
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								drawing.py
									
									
									
									
									
								
							@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user