Gosper curve

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The Gosper curve, named after Bill Gosper, also known as the flowsnake (a spoonerism of snowflake), is a space-filling curve. It is a fractal object similar in its construction to the dragon curve and the Hilbert curve.

Gosper curve 3.svg Gosper curve 1.svg
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 using turtle graphics (online version):

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 is called the Gosper island. The first few iterations of it are shown below:

Gosper Island 0.svg Gosper Island 1.svg Gosper Island 2.svg Gosper Island 3.svg Gosper Island 4.svg

The Gosper Island can tile the plane. In fact, seven copies of the Gosper island can be joined together to form a shape that is similar, but scaled up by a factor of √7 in all dimensions. As can be seen from the diagram below, performing this operation with an intermediate iteration of the island leads to a scaled-up version of the next iteration. Repeating this process indefinitely produces a tessellation of the plane. The curve itself can likewise be extended to an infinite curve filling the whole plane.

Gosper Island Tesselation 2.svg Gosper Island Tesselation.svg

[edit] See also

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages