// 100X100 square represents a constricted space
// the tiny-moving-square has a certain scale and speed
// with which it traverses its environment:
// movement type represents constriction
// with its transformation into the bigger space of 200X200,
// scale remaining the same, the tiny-moving-square has to
// increase its speed to traverse its environment: represents freedom
//the grey line represents the remnants of 100X100 environment

load dbngraphics.dbn
command 100moveLR y
{
   repeat a 10 100
   {
      repeat  b 0 1
      {
         field 10 (y-10) 20 (y+10) 50
         field a y (a+10) (y+10) 100
         pen 50
         line a y a (y+10)
      }
   }
}
command 100moveRL y
{
   repeat a 100 10
   {
      Same? a 10
      {
         100moveLR (y+10)
      }
      NotSame? a 10
      {
         repeat  b 0 2
         {
            field 100 (y-10) 110 (y+10) 50
            field a y (a+10) (y+10) 100
            pen 50
            line (a+10) y (a+10) (y+10)
         }
      }
   }
}
Command speed100
{
   field 10 30 110 130 50
   repeat a 4 10
   {
      set b (a*10)
      100moveRL b
   }
}
Command transition
{
   repeat a 110 0
   {
      repeat b 0 5
      {
         field 100 a 110 (a+10) 100
         NotSmaller? a 10
         {
            field 100 a 110 (a+10) 50
         }
         Smaller? a 10
         {
            field 100 (a+10) 110 (a+20) 0
         }
      }
   }
   // move the square
   repeat d 0 100
   {
      field (100+d) 0 (110+d) 10 100
      field (100+d) 0 (110+d+10) 10 0
   }
}
 // bigger screen
paper 0
command 200moveLR y2
{
   repeat a 0 200
   {
      field 0 (y2-10) 10 (y2+10) 0
      field a y2 (a+10) (y2+10) 100
      pen 0
      line a y2 a (y2+10)
   }
}
FREEDOM

 

Emphasize the difference of now larger 200 by 200 display area with temporal display.


Command 200moveRL y2
{
   repeat a 200 0
   {
      Same? a 0
      {
         200moveLR (y2+10)
      }
      NotSame? a 0
      {
         repeat b 0 1
         {
            field 190 (y2-10) 200 (y2+10) 0
            field a y2 (a+10) (y2+10) 100
            pen 0
            line (a+10) y2 (a+10) (y2+10)
         }
      }
   }
}
Command speed200
{
   repeat c 0 7
   {
      set d (c*25)
      200moveRL d
   }
}
Command temporal
{
   speed100
   repeat a 0 50
   {
      repeat c 0 20
      {
         set b (a*2)
         field (10-b) (30-b) (110+b) (130+b) (50-a)
         field 100 110 110 120 100
      }
   }
   transition
   speed200
}
temporal












aradhana goel...a_goel@mit.edu...course 4G...............................................................................mas110...spring2000