Gosper curve

{{Short description|Space-filling curve}}

File:Gosper curve 4.svg

File:Gosper curve 1.svg

The Gosper curve, named after Bill Gosper, also known as the Peano-Gosper Curve{{cite web|last=Weisstein, Eric W.|title=Peano-Gosper Curve|url=http://mathworld.wolfram.com/Peano-GosperCurve.html|publisher=MathWorld|access-date=31 October 2013}} and the flowsnake (a spoonerism of snowflake), is a space-filling curve whose limit set is rep-7. It is a fractal curve similar in its construction to the dragon curve and the Hilbert curve.

The Gosper curve can also be used for efficient hierarchical hexagonal clustering and indexing.{{cite journal |last1=Uher |first1=Vojtěch |last2=Gajdoš |first2=Petr |last3=Snášel |first3=Václav |last4=Lai |first4=Yu-Chi |last5=Radecký |first5=Michal |title=Hierarchical Hexagonal Clustering and Indexing |journal=Symmetry |date=28 May 2019 |volume=11 |issue=6 |pages=731 |doi=10.3390/sym11060731|doi-access=free |hdl=10084/138899 |hdl-access=free }}

Lindenmayer system

The Gosper curve can be represented using an L-system 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.

Properties

The space filled by the curve is called the Gosper island. The first few iterations of it are shown below:

align=center

|180px

|180px

|180px

|180px

|180px

The Gosper Island can tile 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 {{radic|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.

align=center

|240px

|240px

See also

References

{{reflist}}