NAME
Math::PlanePath::GosperSide  one side of the Gosper island
SYNOPSIS
use Math::PlanePath::GosperSide;
my $path = Math::PlanePath::GosperSide>new;
my ($x, $y) = $path>n_to_xy (123);
DESCRIPTION
This path is a single side of the Gosper island, in integers ("Triangular Lattice" in Math::PlanePath).
20... 14
/
1819 13
/
17 12
\
16 11
/
15 10
\
1413 9
\
12 8
/
11 7
\
10 6
/
8 9 5
/
6 7 4
/
5 3
\
4 2
/
2 3 1
/
0 1 < Y=0
^
X=0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
The path slowly spirals around counter clockwise, with a lot of wiggling in between. The N=3^level point is at
N = 3^level
angle = level * atan(sqrt(3)/5)
= level * 19.106 degrees
radius = sqrt(7) ^ level
A full revolution for example takes roughly level=19 which is about N=1,162,000,000.
Both ends of such levels are in fact subspirals, like an "S" shape.
The path is both the sides and the radial spokes of the GosperIslands
path, as described in "Side and Radial Lines" in Math::PlanePath::GosperIslands. Each N=3^level point is the start of a GosperIslands
ring.
The path is the same as the TerdragonCurve
except the turns here are by 60 degrees each, whereas TerdragonCurve
is by 120 degrees. See Math::PlanePath::TerdragonCurve for the turn sequence and total direction formulas etc.
FUNCTIONS
See "FUNCTIONS" in Math::PlanePath for behaviour common to all path classes.
$path = Math::PlanePath::GosperSide>new ()

Create and return a new path object.
($x,$y) = $path>n_to_xy ($n)

Return the X,Y coordinates of point number
$n
on the path. Points begin at 0 and if$n < 0
then the return is an empty list.Fractional
$n
gives a point on the straight line between integer N.
SEE ALSO
Math::PlanePath, Math::PlanePath::GosperIslands, Math::PlanePath::TerdragonCurve, Math::PlanePath::KochCurve
HOME PAGE
http://user42.tuxfamily.org/mathplanepath/index.html
LICENSE
Copyright 2011, 2012, 2013, 2014 Kevin Ryde
MathPlanePath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
MathPlanePath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with MathPlanePath. If not, see <http://www.gnu.org/licenses/>.