- string theory

Blue Ball

Filography is the art of stringcraft. Typically a brightly colored thread is wound between nails knocked into a piece of wood, or through holes in a piece of card.

This program uses a circular array of 90 holes. Imagine they are numbered 1 to 90 in a clockwise direction from the top. Each string is threaded from a start hole to a finish hole. The start holes rise sequentially 1 through 90. If StepA and StepB are both 2 then the finish holes rise in steps of 2. Therefore, the first few strings are threaded from 1 to 2, 2 to 4, 3 to 6, 4 to 8 etc. This gives the classic pattern.

If StepA and StepB are not the same, then the string moves away from the circle. An Offset adds a set amount to each destination, resulting in yet more patterns.

The program draws random patterns. It generates 3 parameters: StepA, StepB and Offset. These are displayed at the top of the screen.

To New
  # set default screen, pen and turtle values
  ResetAll SetScreenSize [400 400] HideTurtle
  SetSC Black SetPC Green SetPS 1 PenUp

To Init
  Make "StepA Pick [0 2 3 4]
  Make "StepB Pick [-3 -2 1 2 3 4]
  Make "Offset 15*Random 9

To Display :StepA :StepB :Offset
  SetPC White
  SetXY Minus 196 186 Label (List "Loom :StepA :StepB :Offset)

To Loom :StepA :StepB :Offset
  For [Angle 0 360 2] [
    SetPC AngCol :Angle PenUp
    SetXY 180*Sin :Angle 180*Cos :Angle PenDown  # circle start point
    SetXY 180*Sin (:StepA*:Angle) 180*Cos (:Offset+(:StepB*:Angle))     # finish point
    Wait 2]

To AngCol :Ang
  # Output list of red, grn, blue
  Make "Red 127*(1+Cos :Ang)
  Make "Grn 127*(1+Cos(120+:Ang))
  Make "Blue 127*(1+Cos(240+:Ang))
  Output ( List :Red :Grn :Blue )

To Go
  New Forever [
  Init Display :StepA :StepB :Offset
  Loom :StepA :StepB :Offset
  Wait 300 PenUp Wash]

Add in the following procedure to draw individual looms.

To GoX :StepA :StepB :Offset
  New Display :StepA :StepB :Offset
  Loom :StepA :StepB :Offset

Type goX StepA StepB Offset for example GoX 2 3 60 to run.


Book Info
keys to infinity
Pages 78-83

Procedures blue
Variables pink
Comments green
Library gray