Math::PlanePath::FibonacciWordFractal(3pm) | User Contributed Perl Documentation | Math::PlanePath::FibonacciWordFractal(3pm) |
NAME¶
Math::PlanePath::FibonacciWordFractal -- turns by Fibonacci word bitsSYNOPSIS¶
use Math::PlanePath::FibonacciWordFractal; my $path = Math::PlanePath::FibonacciWordFractal->new; my ($x, $y) = $path->n_to_xy (123);
DESCRIPTION¶
This is an integer version of the Fibonacci word fractalAlexis Monnerot-Dumaine, "The Fibonacci Word
Fractal", February 2009.
<http://hal.archives-ouvertes.fr/hal-00367972_v1/>
<http://hal.archives-ouvertes.fr/docs/00/36/79/72/PDF/The_Fibonacci_word_fractal.pdf>
It makes turns controlled by the "Fibonacci word" sequence, sometimes
called the "golden string".
11 | 27-28-29 33-34-35 53-54-55 59-60-61 | | | | | | | | | 10 | 26 30-31-32 36 52 56-57-58 62 | | | | | 9 | 25-24 38-37 51-50 64-63 | | | | | 8 | 23 39 43-44-45 49 65 | | | | | | | 7 | 21-22 40-41-42 46-47-48 66-67 | | | 6 | 20 16-15-14 74-73-72 68 | | | | | | | 5 | 19-18-17 13 75 71-70-69 | | | 4 | 11-12 76-77 | | | 3 | 10 78 | | | 2 | 9--8 80-79 | | | 1 | 1--2--3 7 81 85-86-87 | | | | | | | Y=0 | 0 4--5--6 82-83-84 88-89-... +------------------------------------------------------- X=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17A current direction up,down,left,right is maintained, starting in the up direction. The path moves in the current direction and then may turn or go straight according to the Fibonacci word,
Fib word -------- 0 turn left if even index, right if odd index 1 straight aheadThe Fibonacci word is reckoned as starting from index=1, so for example at N=0 draw a line upwards to N=1 and the first Fibonacci word value is 0 and its position index=1 is odd so turn to the right.
N Fibonacci word --- -------------- 1 0 turn right 2 1 3 0 turn right 4 0 turn left 5 1 6 0 turn left 7 1The result is self-similar blocks within the first quadrant X>=0,Y>=0. New blocks extend at N values which are Fibonacci numbers. For example N=21 a new block begins above, then N=34 a new block across, N=55 down, N=89 across again, etc. The new blocks are a copy of the shape starting N=0 but rotated and/or transposed according to the replication level mod 6,
level mod 6 new block ----------- --------- 0 transpose 1 rotate -90 2 transpose and rotate -90 3 transpose 4 rotate +90 5 transpose and rotate +90
FUNCTIONS¶
See "FUNCTIONS" in Math::PlanePath for behaviour common to all path classes.- "$path = Math::PlanePath::FibonacciWordFractal->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 positions give an X,Y position along a straight line between the integer positions.
- "$n = $path->n_start()"
- Return 0, the first N in the path.
OEIS¶
Entries in Sloane's Online Encyclopedia of Integer Sequences related to this path include,<http://oeis.org/A156596> (etc)
A156596 - turn sequence, 0=straight,1=right,2=left A171587 - abs(dX), so 1=horizontal,0=vertical A003849 - Fibonacci word with values 0,1 A005614 - Fibonacci word with values 1,0 A003842 - Fibonacci word with values 1,2 A014675 - Fibonacci word with values 2,1
SEE ALSO¶
Math::PlanePath, Math::PlanePath::DragonCurve, Math::PlanePath::WythoffArray Math::NumSeq::FibonacciWordHOME PAGE¶
<http://user42.tuxfamily.org/math-planepath/index.html>LICENSE¶
Copyright 2011, 2012, 2013, 2014 Kevin Ryde This file is part of Math-PlanePath. Math-PlanePath 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. Math-PlanePath 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 Math-PlanePath. If not, see <http://www.gnu.org/licenses/>.2014-09-03 | perl v5.20.1 |