← Georg Nees, 1969 Chapter ① — Bogenraute

Dissertation 1969

ALGOL 60

'BEGIN' 'COMMENT' BOGENRAUTE.,
'REAL' A, B, V, U, C, S.,
'INTEGER' T.,
OPEN(0,0)., A.=130., B.=90.,
V.=2*3.14159.,
'FOR' T.=0 'STEP' 4 'UNTIL' 396 'DO'
'BEGIN' U.=T/400*V.,
   C.=COS(U)., S.=SIN(U).,
   LINE(A*C*C*C,B*S*S*S).,
   'IF' T 'NOTLESS' 300 'THEN'
   'BEGIN' LINE(A,-B)., 'GOTO' Z 'END'.,
   'IF' T 'NOTLESS' 200 'THEN'
   'BEGIN' LINE(-A,-B)., 'GOTO' Z 'END'.,
   'IF' T 'NOTLESS' 100 'THEN'
   'BEGIN' LINE(-A,B)., 'GOTO' Z 'END'.,
   LINE(A,B).,
   Z.. U.=(T+2)/400*V.,
   C.=COS(U)., S.=SIN(U).,
   LINE(A*C*C*C,B*S*S*S).,
   LINE(0,0).,
'END'.,
CLOSE
'END' BOGENRAUTE.,

This page · drawing kernel

JavaScript

const A = 130, B = 90, V = 2 * Math.PI;

for (let T = 0; T <= 396; T += 4) {
  const U = (T / 400) * V;
  LINE(A * Math.cos(U) ** 3, B * Math.sin(U) ** 3);

  if (T >= 300) LINE(A, -B);
  else if (T >= 200) LINE(-A, -B);
  else if (T >= 100) LINE(-A, B);
  else LINE(A, B);

  const U2 = ((T + 2) / 400) * V;
  LINE(A * Math.cos(U2) ** 3, B * Math.sin(U2) ** 3);
  LINE(0, 0);
}

In each pass the plotter stylus swings between the origin — the centre of the image — and a corner of rectangle A×B. On the way out and back it grazes the “Bogenraute” curve (A·cos³U, B·sin³U). Three branches (the IF tests) choose which of the four corners is visited in each quadrant, and that is what produces the full cross pattern.

© Works of Georg Nees: heirs Eckhard Nees & Sandra Nees · Website © 2026 Eckhard Nees