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

 
# the word i chose is for this piece is
# watchful

import math
g.norefresh()

x = 0
y = 50

def pupil(x, y):
 x1 = x
 y1 = y
 x2 = x+5
 y2 = y+5
 g.field(x1-5, y1-5, x2+5, y2+5, 55)
 g.field(x1, y1, x2, y2, 100)
    
while 1:

 g.pen(0)
 g.paper(0)

 m1 = g.getMouse(1)
 m2 = g.getMouse(2)
 
 if (m2 < 51):
  # looking down
  if (m1 < 1):
   pupil(0, 51)
  if ((m1 > 0) and (m1 < 75)):
   pupil(m1, 51)
  if ((m1 > 0) and (m1 > 74)):
   pupil(74, 51)  
   
 if (m2 > 50):
  # looking up
  # upper left off screen
  if (m1 < 1):
   if (m2 < 100):
    if (m2 > 75):
     pupil(0, m2)
    else: 
     pupil(0, m2-5)
   else:
    pupil(0, 95)

  # directly above or in white
  elif (m1 < 75):
   if (m2 < 100):
    if (m2 > 74):
     pupil(m1-3, m2-5)
    if (m2 < 75):
     pupil(m1-3, m2)
   else:
    pupil(m1, 95)
  
  # upper right 
  else:
   if (m2 < 100):
    if (m2 > 75):
     pupil(74, m2)
    else: 
     pupil(74, m2-5)
   else:
    pupil(74, 95)

 g.field(80, 0, 100, 100, 40)
 g.field(0, 0, 100, 50, 40)
 g.pen(0)

 # bottom curve of eye
 g.line(78, 50, 65, 45)
 g.line(0, 50, 13, 45)
 g.line(13, 45, 35, 42)
 g.line(65, 45, 43, 42)
 g.line(43, 42, 35, 42)

 # fill for bottom curve of eye
 g.line(0, 50, 78, 50)
 g.line(4, 49, 74, 49)
 g.line(6, 48, 72, 48)
 g.line(10, 47, 70, 47)
 g.line(12, 46, 68, 46)
 g.line(15, 45, 65, 45) 
 g.line(25, 44, 60, 44)
 g.line(30, 43, 50, 43)
 
 # side curve of eye
 g.line(78, 50, 90, 60)
 g.line(90, 95, 85, 100)
 g.line(90, 60, 95, 70)
 g.line(90, 95, 95, 85)
 g.line(95, 85, 95, 70)
 
 # fill for side curve of eye
 g.line(94, 85, 94, 69)
 g.line(93, 87, 93, 67)
 g.line(92, 89, 92, 65)
 g.line(91, 91, 91, 63)
 g.line(90, 94, 90, 60)
 g.line(89, 60, 89, 95)
 g.line(88, 59, 88, 96)
 g.line(87, 58, 87, 97)
 g.line(86, 57, 86, 98)
 g.line(85, 56, 85, 99)
 g.line(84, 55, 84, 100)
 g.line(83, 54, 83, 100)
 g.line(82, 53, 82, 100)
 g.line(81, 52, 81, 100)
 g.line(80, 51, 80, 100)
 
 # the nose line
 g.pen(80)
 g.line(100, 50, 95, 30)
 g.line(95, 30, 90, 20)
 g.line(90, 20, 80, 13)
 g.line(80, 13, 75, 6)
 g.line(75, 6, 75, 0)
 
 #the eyelashes
 g.pen(70)
 for x in range(0, 12):
  g.line(8*x-7, 95, 8*x-2, 100)
  g.line(7*x-5, 90, 7*x, 100)
 g.refresh()