mas110 exhibition .fundamentals of computational media design.spring 2000.professor john maeda
megan's static pieces . megan's dynamic pieces

 

# first, this is supposed to show the varying detail that
# you can obtain from the different sized canvases.
# i did this by rendering two styles of the human
# form, one a detailed human body and one a generic
# stickman.
#
# second, this is supposed to highlight the amount of
# freedom and room that the larger space gives (by
# fitting in several of the smaller sized canvases
# that seem to float loosely around, as well as the
# depicted movement and unconstrained posture of the
# human).
#
# finally, this emphasizes the ability to zoom in and out,
# and the advantage of being able to focus on one
# particular element in detail in the smaller space.

g.antialias(1)
g.paper(0)
g.pen(100)

def stickman(x, y, color):
g.pen(color)
g.line(x, y, x, y+9)
g.line(x-3, y-3, x, y)
g.line(x+3, y-3, x, y)
g.line(x-3, y+6, x+3, y+6)
g.field(x-1, y+10, x+1, y+13, color)
g.setPixel(x-2, y+12, color)
g.setPixel(x-2, y+11, color)
g.setPixel(x+2, y+12, color)
g.setPixel(x+2, y+11, color)

def letter_S(h, v):
g.line(h, v+2, h+2, v)
g.line(h+2, v, h+9, v)
g.line(h+10, v+1, h+10, v+4)
g.line(h+9, v+5, h+2, v+5)
g.line(h+2, v+5, h, v+7)
g.line(h, v+7, h, v+9)
g.line(h+1, v+10, h+9, v+10)
g.line(h+9, v+10, h+10, v+9)

def letter_I(h, v):
g.line(h, v, h+10, v)
g.line(h+5, v, h+5, v+10)
g.line(h, v+10, h+9, v+10)

def letter_Z(h, v):
g.line(h, v+10, h+10, v+10)
g.line(h+10, v+10, h, v)
g.line(h, v, h+10, v)

def letter_E(h, v):
g.line(h, v+3, h, v+10)
g.line(h, v+3, h+3, v)
g.line(h+3, v, h+10, v)
g.line(h, v+6, h+9, v+6)
g.line(h, v+10, h+9, v+10)

def sm_letter_s(h, v):
g.line(h, v+1, h+1, v)
g.line(h+1, v, h+4, v)
g.line(h+5, v+1, h+5, v+2)
g.line(h+5, v+3, h+1, v+3)
g.line(h+1, v+3, h, v+4)
g.line(h, v+4, h, v+4)
g.line(h+1, v+5, h+5, v+5)

def sm_letter_i(h, v):
g.line(h, v, h+5, v)
g.line(h+3, v, h+3, v+5)
g.line(h, v+5, h+5, v+5)

def sm_letter_z(h, v):
g.line(h, v+5, h+5, v+5)
g.line(h+5, v+5, h, v)
g.line(h, v, h+5, v)

def sm_letter_e(h, v):
g.line(h, v+2, h, v+5)
g.line(h, v+2, h+2, v)
g.line(h+2, v, h+5, v)
g.line(h, v+3, h+5, v+3)
g.line(h, v+5, h+5, v+5)

#########

g.pen(100)
# left foot
g.line(145, 10, 147, 12)
g.line(147, 7, 145, 10)
g.line(147, 7, 150, 5)
g.line(147, 12, 150, 11)
g.line(150, 11, 163, 16)
g.line(163, 16, 165, 20)
g.line(150, 5, 160, 7)
g.line(160, 7, 170, 5)
g.line(170, 5, 175, 6)
g.line(175, 6, 176, 9)
g.line(176, 9, 173, 13)

# left lower leg/calf area
g.line(165, 20, 166, 55)
g.line(173, 13, 175, 25)
g.line(175, 25, 180, 40)
g.line(180, 40, 179, 55)

# left knee and upper leg/thigh
g.line(179, 55, 190, 90)
g.line(166, 55, 165, 63)
g.line(165, 63, 167, 70)
g.line(167, 70, 166, 90)
g.line(166, 90, 168, 105)
g.line(168, 105, 170, 110)

# right thigh and knees
g.line(194, 97, 200, 65)
g.line(183, 69, 190, 53)
g.line(190, 53, 190, 50)
g.line(190, 50, 191, 46)
g.line(191, 46, 193, 44)
g.line(193, 44, 198, 43)
g.line(198, 43, 200, 42)

# buttocks
g.line(190, 90, 196, 103)
g.line(196, 103, 197, 110)
g.line(197, 110, 196, 118)
g.line(196, 118, 190, 130)
g.line(190, 130, 189, 140)

# the back
g.line(189, 140, 190, 150)
g.line(190, 150, 192, 165)

# the tummy
g.line(170, 110, 169, 120)
g.line(169, 120, 165, 142)
g.line(165, 142, 165, 152)

# the hand
g.line(165, 192, 175, 193)
g.line(175, 193, 176, 194)
g.line(175, 195, 167, 195)
g.line(167, 195, 161, 196)
g.line(161, 196, 157, 194)
g.line(157, 194, 158, 188)

# the wrist and arm
g.line(165, 192, 165, 190)
g.line(165, 190, 173, 165)
g.line(173, 166, 177, 170)
g.line(158, 188, 163, 160)
g.line(163, 160, 167, 153)
g.line(167, 153, 170, 153)
g.line(170, 153, 172, 154)
g.line(172, 154, 175, 155)
g.line(175, 155, 182, 160)

# the neck and head
g.line(172, 169, 178, 174)
g.line(178, 174, 178, 176)
g.line(192, 165, 190, 175)
g.line(190, 175, 190, 177)
g.line(190, 177, 190, 179)
g.line(190, 179, 192, 184)
g.line(192, 184, 192, 188)
g.line(192, 188, 190, 195)
g.line(190, 195, 185, 199)
g.line(185, 199, 180, 199)
g.line(180, 199, 177, 198)
g.line(178, 176, 175, 176)
g.line(175, 176, 173, 179)
g.line(173, 179, 172, 187)
g.line(172, 187, 173, 193)

# the right arm
g.line(194, 152, 192, 158)
g.line(194, 152, 196, 144)
g.line(196, 144, 196, 140)
g.line(196, 140, 191, 134)
g.line(165, 130, 162, 130)
g.line(162, 130, 162, 132)
g.line(162, 132, 163, 133)
g.line(163, 133, 165, 134)

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

# the original dbn canvases

# the canvas emphasizing detail and scale
g.field(3, 2, 103, 102, 5)
g.field(15, 90, 103, 102, 10)
g.line(3, 2, 103, 2)
g.line(3, 2, 3, 102)
g.line(3, 102, 103, 102)
g.line(103, 102, 103, 2)
for a in range(1, 9):
stickman(3+(11*a), 20, 90)
stickman(3+(11*a), 44, 70)
stickman(3+(11*a), 68, 50)
g.pen(100)

# the canvas the person is walking on
g.field(90, 0, 190, 7, 40)
g.line(147, 7, 145, 10)
g.line(147, 7, 150, 5)
g.line(150, 5, 160, 7)
g.line(160, 7, 170, 5)
g.line(170, 5, 175, 6)
g.line(175, 6, 176, 9)
g.line(90, 7, 145, 7)
g.line(90, 0, 90, 7)
g.line(178, 7, 190, 7)
g.line(190, 0, 190, 7)
g.pen(0)
g.line(169, 7, 173, 7)
g.line(150, 7, 154, 7)
g.pen(100)

# the canvas the person is carrying away
g.field(74, 197, 174, 200, 55)
g.line(174, 200, 174, 197)
g.line(174, 197, 74, 197)
g.line(74, 197, 74, 200)

# the canvas that emphasizes things being magnified?
g.line(15, 90, 15, 100)
g.line(15, 104, 15, 190)
g.line(15, 190, 115, 190)
g.line(115, 190, 115, 90)
g.line(115, 90, 105, 90)
g.line(101, 90, 15, 90)
g.pen(40)
y1 = 121

letter_S(18, y1)
letter_I(30, y1)
letter_Z(42, y1)
letter_E(54, y1)
letter_S(68, y1)
letter_I(80, y1)
letter_Z(92, y1)
letter_E(104, y1)

g.pen(100)
sm_letter_z(1, y1)
sm_letter_e(8, y1)

sm_letter_s(117, y1)
sm_letter_i(124, y1)
sm_letter_z(131, y1)
sm_letter_e(138, y1)

sm_letter_s(146, y1)
sm_letter_i(153, y1)
sm_letter_z(160, y1)
sm_letter_e(196, y1)

y1 = 134
sm_letter_z(1, y1-5)
sm_letter_e(8, y1-5)
g.pen(40)
letter_S(18, y1)
letter_I(30, y1)
letter_Z(42, y1)
letter_E(54, y1)
letter_S(68, y1)
letter_I(80, y1)
letter_Z(92, y1)
letter_E(104, y1)
g.pen(100)
sm_letter_s(117, y1-5)
sm_letter_i(124, y1-5)
sm_letter_z(131, y1-5)
sm_letter_e(138, y1-5)

sm_letter_s(146, y1-5)
sm_letter_i(153, y1-5)
sm_letter_e(196, y1-5)

y1 = 147
sm_letter_z(1, y1-10)
sm_letter_e(8, y1-10)
g.pen(40)
letter_S(18, y1)
letter_I(30, y1)
letter_Z(42, y1)
letter_E(54, y1)
letter_S(68, y1)
letter_I(80, y1)
letter_Z(92, y1)
letter_E(104, y1)
g.pen(100)
sm_letter_s(117, y1-10)
sm_letter_i(124, y1-10)
sm_letter_z(131, y1-10)
sm_letter_e(138, y1-10)

sm_letter_s(146, y1-10)
sm_letter_i(153, y1-10)
sm_letter_z(160, y1-10)
sm_letter_e(196, y1-10)