HOME

TheInfoList



OR:

The Gosper curve, named after Bill Gosper, also known as the Peano-Gosper Curve and the flowsnake (a
spoonerism A spoonerism is an occurrence in speech in which corresponding consonants, vowels, or morphemes are switched (see metathesis) between two words in a phrase. These are named after the Oxford don and ordained minister William Archibald Spooner, ...
of
snowflake A snowflake is a single ice crystal that has achieved a sufficient size, and may have amalgamated with others, which falls through the Earth's atmosphere as snow.Knight, C.; Knight, N. (1973). Snow crystals. Scientific American, vol. 228, no. ...
), is a
space-filling curve In mathematical analysis, a space-filling curve is a curve whose range contains the entire 2-dimensional unit square (or more generally an ''n''-dimensional unit hypercube). Because Giuseppe Peano (1858–1932) was the first to discover one, spa ...
whose limit set is rep-7. It is a
fractal curve A fractal curve is, loosely, a mathematical curve whose shape retains the same general pattern of irregularity, regardless of how high it is magnified, that is, its graph takes the form of a fractal. In general, fractal curves are nowhere rectif ...
similar in its construction to the dragon curve and the
Hilbert curve The Hilbert curve (also known as the Hilbert space-filling curve) is a continuous fractal space-filling curve first described by the German mathematician David Hilbert in 1891, as a variant of the space-filling Peano curves discovered by Giusepp ...
. The Gosper curve can also be used for efficient hierarchical hexagonal clustering and indexing.


Algorithm


Lindenmayer system

The Gosper curve can be represented using an
L-system An L-system or Lindenmayer system is a parallel rewriting system and a type of formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into som ...
with rules as follows: * Angle: 60° * Axiom: A * Replacement rules: ** A \mapsto A-B--B+A++AA+B- ** B \mapsto +A-BB--B-A++A+B In this case both A and B mean to move forward, + means to turn left 60 degrees and - means to turn right 60 degrees - using a "turtle"-style program such as
Logo A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordm ...
.


Logo

A
Logo A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name it represents as in a wordm ...
program to draw the Gosper curve using
turtle graphics In computer graphics, turtle graphics are vector graphics using a relative cursor (the " turtle") upon a Cartesian plane (x and y axis). Turtle graphics is a key feature of the Logo programming language. Overview The turtle has three attri ...
: to rg :st :ln make "st :st - 1 make "ln :ln / sqrt 7 if :st > 0 g :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 d :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60end to gl :st :ln make "st :st - 1 make "ln :ln / sqrt 7 if :st > 0 t 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 t 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :lnend The program can be invoked, for example, with rg 4 300, or alternatively gl 4 300.


Python

A Python program, that uses the aforementioned L-System rules, to draw the Gosper curve using turtle graphics
online version
: import turtle def gosper_curve(order: int, size: int, is_A: bool = True) -> None: """Draw the Gosper curve.""" if order

0: turtle.forward(size) return for op in "A-B--B+A++AA+B-" if is_A else "+A-BB--B-A++A+B": gosper_op_map porder - 1, size) gosper_op_map = size = 10 order = 3 gosper_curve(order, size)


Properties

The space filled by the curve is called the Gosper island. The first few iterations of it are shown below: The Gosper Island can
tile Tiles are usually thin, square or rectangular coverings manufactured from hard-wearing material such as ceramic, Rock (geology), stone, metal, baked clay, or even glass. They are generally fixed in place in an array to cover roofs, floors, wa ...
the plane. In fact, seven copies of the Gosper island can be joined to form a shape that is similar, but scaled up by a factor of 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 A tessellation or tiling is the covering of a surface, often a plane, using one or more geometric shapes, called ''tiles'', with no overlaps and no gaps. In mathematics, tessellation can be generalized to higher dimensions and a variety of ge ...
of the plane. The curve itself can likewise be extended to an infinite curve filling the whole plane.


See also

*
List of fractals by Hausdorff dimension According to Benoit Mandelbrot, "A fractal is by definition a set for which the Hausdorff-Besicovitch dimension strictly exceeds the topological dimension." Presented here is a list of fractals, ordered by increasing Hausdorff dimension, to illust ...
* M.C. Escher


References


External links


NEW GOSPER SPACE FILLING CURVESFRACTAL DE GOSPER
(in French)

at Wolfram MathWorld

{{Fractals Fractal curves