SHAPES

Here is a simple image created with SHAPES 9 a simple interpreter for creating simple images using programming statements.



Here is the source code:

@@main program
{
    [ ]
   fill black
    moveby(-680,-560)
    @dis_s [ 500, 200,100,150 ] (90)
    moveby(240,0)
    @dis_h [ 500, 100,200,50 ] (90)
    moveby(240,0)
    @dis_a [ 500, 100,000,200 ] (90)
    moveby(240,0)
    @dis_p [ 500, 200,000,00 ] (90)
   moveby(240,0)
    @dis_e [ 500, 100,50,200 ] (90)
   moveby(240,0)
    @dis_s [ 500, 200,200,0 ] (90)
 
   moveby(-1200,270)
@dis_s [ 400, 200,100,150 ] (70)
    moveby(240,0)
    @dis_h [ 400, 100,200,50 ] (70)
    moveby(240,0)
    @dis_a [ 400, 100,000,200 ] (70)
    moveby(240,0)
    @dis_p [ 400, 200,0,0 ] (70)
   moveby(240,0)
    @dis_e [ 400, 100,50,200 ] (70)
   moveby(240,0)
    @dis_s [ 400, 200,200,0 ] (70)

  
   moveby(-1200,270)
@dis_s [ 200, 200,100,150 ] (30)
    moveby(240,0)
    @dis_h [ 200, 100,200,50 ] (30)
    moveby(240,0)
    @dis_a [ 200, 100,000,200 ] (30)
    moveby(240,0)
    @dis_p [ 200, 200,0,0 ] (30)
   moveby(240,0)
    @dis_e [ 200, 100,50,200 ] (30)
   moveby(240,0)
    @dis_s [ 200, 200,200,0 ] (30)
  
   moveby(-1200,270)
@dis_s [ 200, 200,100,150 ] (30)
    moveby(240,0)
    @dis_h [ 200, 100,200,50 ] (30)
    moveby(240,0)
    @dis_a [ 200, 100,000,200 ] (30)
    moveby(240,0)
    @dis_p [ 200, 200,0,0 ] (30)
   moveby(240,0)
    @dis_e [ 200, 100,50,200 ] (30)
   moveby(240,0)
    @dis_s [ 200, 200,200,0 ] (30)
}


@@dis_s [ s, r,g,b ]
{
   [  ]
   @S [ s, r,g,b]
   s:= s -5
}

@@dis_h [ s, r,g,b ]
{
   [  ]
   @H [ s, r,g,b]
   s:= s -5
}

@@dis_a [ s, r,g,b ]
{
   [  ]
   @A [ s, r,g,b]
   s:= s -5
}



@@dis_p [ s, r,g,b ]
{
   [  ]
   @P [ s, r,g,b]
   s:= s -5
}


@@dis_e [ s, r,g,b ]
{
   [  ]
   @E [ s, r,g,b]
   s:= s -5
}


@@E [x,r,g,b]
{
     [ ]
    colour r,g,b
     border-thickness 0  
     square x
     moveby(0,x)
     square x
    moveby(0,x)
    square x
     moveby(0,x)
     square x
     moveby(0,x)
     square x
     moveby(x,0)
     square x
     moveby(x,0)
     square x
     moveby(-x,-2*x)
     square x
     moveby(x,0)
     square x
     moveby(-x,-2*x)
     square x
     moveby(x,0)
     square x
     moveby(x,0)

    #outline
    colour black
    moveby(-3*x,0)
    drawby(3*x,0)
    drawby(0,x)
    drawby(-2*x,0)
    drawby(0,x)
    drawby(2*x,0)
    drawby(0,x)
    drawby(-2*x,0)
     drawby(0,x)
    drawby(2*x,0)
    drawby(0,x)
    drawby(-3*x,0)
    drawby(0,-5*x)
}


@@P[x,r,b,g]
{
     [ ]
     colour r,g,b
     border-thickness 0
     square x
     moveby(0,x)
     square x
     moveby(0,x)
     square x
     moveby(0,x)
     square x
     moveby(0,x)
     square x
     moveby(x,0)
     square x
     moveby(x,0)
     square x
     moveby(0,-x)
     square x
     moveby(0,-x)
     square x
     moveby(-x,0)
     square x

     #outline
     colour black
     moveby(-x,-2*x)
     drawby(x,0)
     drawby(0,2*x)
     drawby(2*x,0)
     drawby(0,3*x)
     drawby(-3*x,0)
     drawby(0,-5*x)
     moveby(x,3*x)
     drawby(x,0)
     drawby(0,x)
     drawby(-x,0)
     drawby(0,-x)
     moveby(-x,-3*x)
}


@@A[ x,r,g,b]
{
     [ ]
     colour r,g,b
     border-thickness 0
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby(x,0)
     square x
     moveby(0, -2*x)
     square x
     moveby (x,-2*x)
     square x
     moveby (0,x)
     square x   
     moveby (0,x)
     square x   
     moveby (0,x)
     square x   
     moveby (0,x)
     square x   

    #outline
    colour black
    moveby(-2*x,-4*x)
    drawby(x, 0)
    drawby(0,2*x)
    drawby(x,0)
    drawby(0,-2*x)
    drawby(x,0)
    drawby(0,5*x)
    drawby(-3*x,0)
    drawby(0,-5*x)
    moveby(x,3*x)
    drawby(x,0)
    drawby(0,x)
    drawby(-x,0)
    drawby(0,-x)
    moveby(-x,-3*x)
}


@@H[ x,r,g,b]
{
     [ ]
     colour r,g,b
     border-thickness 0
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby (0,x)
     square x
     moveby(x, -2*x)
     square x
     moveby (x,-2*x)
     square x
     moveby (0,x)
     square x   
     moveby (0,x)
     square x   
      moveby (0,x)
     square x   
     moveby (0,x)
     square x   

    #outline
    colour black
    moveby(-2*x,-4*x)
    drawby(x, 0)
    drawby(0,2*x)
    drawby(x,0)
    drawby(0,-2*x)
    drawby(x,0)
    drawby(0,5*x)
    drawby(-x,0)
    drawby(0,-2*x)
    drawby(-x,0)
    drawby(0,2*x)
    drawby(-x,0)
     drawby(0,-5*x)
}

@@S [ x, r, g, b]
{
      [ ]
     colour r,g,b
     border-thickness 0
    square x
    moveby(x,0)
    square x
    moveby(x,0)
    square x
    moveby(0,x)
    square x
    moveby(0,x)
    square x
    moveby(-x,0)
    square x
    moveby(-x,0)
    square x
    moveby(0,x)
    square x
    moveby(0,x)
    square x
    moveby(x,0)
    square x
    moveby(x,0)
    square x
   
    #outline
    colour black
    moveby (-2*x,-4*x)
    drawby(3*x,0)
    drawby(0,3*x)
    drawby(-2*x,0)
    drawby(0,x)
    drawby(2*x,0)
    drawby(0,x)
    drawby(-3*x,0)
    drawby(0,-3*x)
    drawby(2*x,0)
    drawby(0,-x)
    drawby(-2*x,0)
    drawby(0,-x)
}

Label