![blank.gif (811 bytes)](blank.gif)
![down](tridown1.gif)
![blank.gif (811 bytes)](blank.gif)
![home](triback1.gif) |
![](homebottom.gif)
|
|
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)
|