1Math::PlanePath::FibonaUcsceirWoCrodnFtrraicbtuatle(d3M)Paetrhl::DPolcaunmeePnattaht:i:oFnibonacciWordFractal(3)
2
3
4

NAME

6       Math::PlanePath::FibonacciWordFractal -- turns by Fibonacci word bits
7

SYNOPSIS

9        use Math::PlanePath::FibonacciWordFractal;
10        my $path = Math::PlanePath::FibonacciWordFractal->new;
11        my ($x, $y) = $path->n_to_xy (123);
12

DESCRIPTION

14       This is an integer version of the Fibonacci word fractal
15
16           Alexis Monnerot-Dumaine, "The Fibonacci Word Fractal", February
17           2009.  <http://hal.archives-ouvertes.fr/hal-00367972_v1/>
18           <http://hal.archives-ouvertes.fr/docs/00/36/79/72/PDF/The_Fibonacci_word_fractal.pdf>
19
20       It makes turns controlled by the "Fibonacci word" sequence, sometimes
21       called the "golden string".
22
23           11  | 27-28-29    33-34-35          53-54-55    59-60-61
24               |  |     |     |     |           |     |     |     |
25           10  | 26    30-31-32    36          52    56-57-58    62
26               |  |                 |           |                 |
27            9  | 25-24          38-37          51-50          64-63
28               |     |           |                 |           |
29            8  |    23          39    43-44-45    49          65
30               |     |           |     |     |     |           |
31            7  | 21-22          40-41-42    46-47-48          66-67
32               |  |                                               |
33            6  | 20    16-15-14                      74-73-72    68
34               |  |     |     |                       |     |     |
35            5  | 19-18-17    13                      75    71-70-69
36               |              |                       |
37            4  |          11-12                      76-77
38               |           |                             |
39            3  |          10                            78
40               |           |                             |
41            2  |           9--8                      80-79
42               |              |                       |
43            1  |  1--2--3     7                      81    85-86-87
44               |  |     |     |                       |     |     |
45           Y=0 |  0     4--5--6                      82-83-84    88-89-...
46               +-------------------------------------------------------
47                 X=0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
48
49       A current direction up,down,left,right is maintained, starting in the
50       up direction.  The path moves in the current direction and then may
51       turn or go straight according to the Fibonacci word,
52
53           Fib word
54           --------
55              0      turn left if even index, right if odd index
56              1      straight ahead
57
58       The Fibonacci word is reckoned as starting from index=1, so for example
59       at N=0 draw a line upwards to N=1 and the first Fibonacci word value is
60       0 and its position index=1 is odd so turn to the right.
61
62            N     Fibonacci word
63           ---    --------------
64            1       0    turn right
65            2       1
66            3       0    turn right
67            4       0    turn left
68            5       1
69            6       0    turn left
70            7       1
71
72       The result is self-similar blocks within the first quadrant X>=0,Y>=0.
73       New blocks extend at N values which are Fibonacci numbers.  For example
74       N=21 a new block begins above, then N=34 a new block across, N=55 down,
75       N=89 across again, etc.
76
77       The new blocks are a copy of the shape starting N=0 but rotated and/or
78       transposed according to the replication level mod 6,
79
80           level mod 6      new block
81           -----------      ---------
82                0           transpose
83                1                         rotate -90
84                2           transpose and rotate -90
85                3           transpose
86                4                         rotate +90
87                5           transpose and rotate +90
88

FUNCTIONS

90       See "FUNCTIONS" in Math::PlanePath for behaviour common to all path
91       classes.
92
93       "$path = Math::PlanePath::FibonacciWordFractal->new ()"
94           Create and return a new path object.
95
96       "($x,$y) = $path->n_to_xy ($n)"
97           Return the X,Y coordinates of point number $n on the path.  Points
98           begin at 0 and if "$n < 0" then the return is an empty list.
99
100           Fractional positions give an X,Y position along a straight line
101           between the integer positions.
102
103       "$n = $path->n_start()"
104           Return 0, the first N in the path.
105

OEIS

107       Entries in Sloane's Online Encyclopedia of Integer Sequences related to
108       this path include,
109
110           <http://oeis.org/A156596> (etc)
111
112           A156596  - turn sequence, 0=straight,1=right,2=left
113           A171587  - abs(dX), so 1=horizontal,0=vertical
114
115           A003849  - Fibonacci word with values 0,1
116           A005614  - Fibonacci word with values 1,0
117           A003842  - Fibonacci word with values 1,2
118           A014675  - Fibonacci word with values 2,1
119

SEE ALSO

121       Math::PlanePath, Math::PlanePath::DragonCurve,
122       Math::PlanePath::WythoffArray
123
124       Math::NumSeq::FibonacciWord
125

HOME PAGE

127       <http://user42.tuxfamily.org/math-planepath/index.html>
128

LICENSE

130       Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Kevin Ryde
131
132       This file is part of Math-PlanePath.
133
134       Math-PlanePath is free software; you can redistribute it and/or modify
135       it under the terms of the GNU General Public License as published by
136       the Free Software Foundation; either version 3, or (at your option) any
137       later version.
138
139       Math-PlanePath is distributed in the hope that it will be useful, but
140       WITHOUT ANY WARRANTY; without even the implied warranty of
141       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
142       General Public License for more details.
143
144       You should have received a copy of the GNU General Public License along
145       with Math-PlanePath.  If not, see <http://www.gnu.org/licenses/>.
146
147
148
149perl v5.30.0                      2019-M0a8t-h1:7:PlanePath::FibonacciWordFractal(3)
Impressum