dynamicup
blank.gif (811 bytes)
9b
m.gif (1431 bytes) click to go to movie palmer.gif (3094 bytes)
snapshotsti.gif (3036 bytes)
blank.gif (811 bytes)
down
blank.gif (811 bytes)
home


 




Do problem 9A, this time with an interactive display of the difference in display area. (9a: Your display is now 200 by 200. Emphasize the difference between your early 100 by 100 display area and the now larger 200 by 200 display area with a statically motivated graphic.)

#
# even though this canvas is larger, it doesn't mean there
# can't be hidden parts of the pictures...

import math
g.paper(0)

def rect(x1,y,x2,r):
 for m in range(0,r):
  g.line(x1,y+m,x2,y+m)
  
def rectpause(x1,y,x2,r):
 for m in range(0,r):
  g.line(x1,y+m,x2,y+m)
  g.pause(1)

##################################

### Scene 1 - Great Dome
for m in range(0, 31):
 g.pen(100)
 angle = (m /30.0) * math.pi
 radius = 60
 x = int(186 + math.cos(angle)*radius)
 y = int(140 + math.sin(angle)*radius)
 g.line(186, 140, x, y)
 g.pause(1)
rect(90,131,201,10)

g.pen(50)
rect(100,41,112,90)
rect(132,41,144,90)
rect(164,41,176,90)
rect(196,41,220,90)

g.pen(100)
g.line(80,37,201,37)
g.line(77,35,201,35)
g.line(74,31,201,31)
g.line(70,28,201,28)
g.line(65,25,201,25)
g.line(63,23,201,23)
g.line(60,20,201,20)
g.line(59,18,201,18)
g.line(55,14,201,14)

# trees
g.line(40,20,40,90)
g.line(38,18,40,90)
g.line(42,22,40,90)
g.line(36,19,40,90)
g.line(44,22,40,90) 
for m in range(0, 62):
 g.pen(100)
 angle = (m /30.0) * math.pi
 radius = 20
 x = int(40 + math.sin(angle)*radius)
 y = int(90 + math.cos(angle)*radius)
 g.line(40, 90, x, y)
 g.pause(1)

 
g.line(20,12,20,70)
g.line(18,10,20,70)
g.line(23,10,20,70)
g.line(17,9,20,70)
g.line(25,9,20,70)
for m in range(0, 62):
 g.pen(100)
 angle = (m /30.0) * math.pi
 radius = 23
 x = int(20 + math.cos(angle)*radius)
 y = int(72 + math.sin(angle)*radius)
 g.line(20, 72, x, y)
 g.pause(1)

##################################

# Background Shading
g.pen(20)
rect(0,0,201,201)

### Scene 2 - Green Building

g.pen(100)
g.line(25,0,0,140)
g.line(0,140,150,170)
g.line(0,140,30,170)
g.line(180,200,150,170)
g.line(150,170,180,0)
g.line(180,200,215,0)
g.line(30,170,200,205)

# windows
g.pen(100)
g.line(41,32,144,51)
g.line(46,2,149,21)
g.line(30,92,134,111)
g.line(35,62,139,81)

g.line(25,120,130,140)
g.line(25,120,47,0)
g.line(130,140,154,0)

g.line(60,126,82,0)
g.line(95,133,118,0)
g.refresh()

rectpause(20,250,100,30)

#################################

# Background Shading
g.pen(50)
rect(82,0,201,40)

# Scene 3 - 2003
g.pen(50)
rect(0,0,201,201)

g.pen(60)
rect(90,170,100,10)
rect(100,160,110,10)
rect(122,162,138,16)
rect(145,162,161,16)
rect(172,162,188,16)
g.pen(50)
rect(126,166,134,8)
rect(149,166,157,8)
rect(176,166,184,8)

g.pen(70)
rect(90,120,100,10)
rect(100,110,110,10)
rect(122,112,138,16)
rect(145,112,161,16)
rect(177,115,187,10)
g.pen(50)
rect(126,116,134,8)
rect(149,116,157,8)

g.pen(80)
rect(90,70,100,10)
rect(100,60,110,10)
rect(122,62,138,16)
rect(145,62,161,16)
rect(185,60,195,10)
rect(174,70,184,10)
g.pen(50)
rect(126,66,134,8)
rect(149,66,157,8)

g.pen(100)
rectpause(90,20,100,10)
rectpause(100,10,110,10)
rectpause(122,12,138,16)
rectpause(145,12,161,16)
rectpause(185,10,195,10)
rectpause(172,10,182,10)
rectpause(178,21,188,10)
g.pen(50)
rectpause(126,16,134,8)
rectpause(149,16,157,8)

##################################

# Putting it all together

# Background Shading
g.pen(0)
rect(0,0,201,201)
g.pen(50)
rect(82,0,201,40)
g.pen(20)
rect(0,0,80,201)

# 2003
g.pen(100)
rect(90,20,100,10)
rect(100,10,110,10)
rect(122,12,138,16)
rect(145,12,161,16)
rect(185,10,195,10)
rect(172,10,182,10)
rect(178,21,188,10)
g.pen(50)
rect(126,16,134,8)
rect(149,16,157,8)

#great dome
for m in range(0, 31):
 g.pen(100)
 angle = (m /30.0) * math.pi
 radius = 60
 x = int(186 + math.cos(angle)*radius)
 y = int(140 + math.sin(angle)*radius)
 g.line(186, 140, x, y)
rect(90,131,201,10)

g.pen(50)
rect(100,41,112,90)
rect(132,41,144,90)
rect(164,41,176,90)
rect(196,41,220,90)

#green building
g.pen(100)
g.line(25,0,0,140)
g.line(0,140,80,155)
g.line(0,140,30,170)
g.line(30,170,80,180)
g.line(25,120,80,130)
g.line(25,120,47,0)
g.line(55,125,77,0)
g.line(30,92,80,101)
g.line(35,62,80,71)
g.line(41,32,80,41)
g.line(46,2,80,10)