Gosper curve
From Wikipedia, the free encyclopedia
The Gosper curve, named after Bill Gosper, also known as the flowsnake, is a space-filling curve. It is a fractal object similar in its construction to the dragon curve and the Hilbert curve.
A fourth-stage Gosper curve | The line from the red to the green point shows a single step of the Gosper curve construction. |
A Logo program to draw the Gosper curve:
to rg :st :ln make "st :st - 1 make "ln :ln / 2.6457 if :st > 0 [rg :st :ln rt 60 gl :st :ln rt 120 gl :st :ln lt 60 rg :st :ln lt 120 rg :st :ln rg :st :ln lt 60 gl :st :ln rt 60] if :st = 0 [fd :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60] end to gl :st :ln make "st :st - 1 make "ln :ln / 2.6457 if :st > 0 [lt 60 rg :st :ln rt 60 gl :st :ln gl :st :ln rt 120 gl :st :ln rt 60 rg :st :ln lt 120 rg :st :ln lt 60 gl :st :ln] if :st = 0 [lt 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :ln] end
The program can be invoked, for example, with rg 4 300
, or alternatively gl 4 300
.
The constant 2.6457 in the program code is an approximation of √7.
[edit] Properties
The space filled by the curve, also known as the Gosper island, can tile the plane. In fact, seven copies of the Gosper island can be joined together so as to form a shape that is similar, but scaled up by a factor of √7 in all dimensions. Repeating this process indefinitely produces a tesselation of the plane. The curve itself can likewise be extended to an infinite curve filling the whole plane.