1Math::PlanePath::GreekKUesyeSrpiCroanlt(r3i)buted Perl DMoactuhm:e:nPtlaatnieoPnath::GreekKeySpiral(3)
2
3
4

NAME

6       Math::PlanePath::GreekKeySpiral -- square spiral with Greek key motif
7

SYNOPSIS

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

DESCRIPTION

14       This path makes a spiral with a Greek key scroll motif,
15
16           39--38--37--36  29--28--27  24--23                      5
17            |           |   |       |   |   |
18           40  43--44  35  30--31  26--25  22                      4
19            |   |   |   |       |           |
20           41--42  45  34--33--32  19--20--21  ...                 3
21                    |               |           |
22           48--47--46   5---6---7  18  15--14  99  96--95          2
23            |           |       |   |   |   |   |   |   |
24           49  52--53   4---3   8  17--16  13  98--97  94          1
25            |   |   |       |   |           |           |
26           50--51  54   1---2   9--10--11--12  91--92--93     <- Y=0
27                    |                           |
28           57--56--55  68--69--70  77--78--79  90  87--86         -1
29            |           |       |   |       |   |   |   |
30           58  61--62  67--66  71  76--75  80  89--88  85         -2
31            |   |   |       |   |       |   |           |
32           59--60  63--64--65  72--73--74  81--82--83--84         -3
33
34                        ^
35
36           -3  -2  -1  X=0  1   2   3   4   5   6   7   8 ...
37
38       The repeating figure is a 3x3 pattern
39
40              |
41              *   *---*
42              |   |   |      right vertical
43              *---*   *      going upwards
44                      |
45              *---*---*
46              |
47
48       The turn excursion is to the outside of the 3-wide channel and forward
49       in the direction of the spiral.  The overall spiralling is the same as
50       the "SquareSpiral", but composed of 3x3 sub-parts.
51
52   Sub-Part Joining
53       The verticals have the "entry" to each figure on the inside edge, as
54       for example N=90 to N=91 above.  The horizontals instead have it on the
55       outside edge, such as N=63 to N=64 along the bottom.  The innermost N=1
56       to N=9 is a bottom horizontal going right.
57
58             *---*---*
59             |       |        bottom horizontal
60             *---*   *        going rightwards
61                 |   |
62           --*---*   *-->
63
64       On the horizontals the excursion part is still "forward on the
65       outside", as for example N=73 through N=76, but the shape is offset.
66       The way the entry is alternately on the inside and outside for the
67       vertical and horizontal is necessary to make the corners join.
68
69   Turn
70       An optional "turns => $integer" parameter controls the turns within the
71       repeating figure.  The default is "turns=>2".  Or for example
72       "turns=>4" begins
73
74           turns => 4
75
76           105-104-103-102-101-100  79--78--77--76--75  62--61--60--59
77             |                   |   |               |   |           |
78           106 119-120-121-122  99  80  87--88--89  74  63  66--67  58
79             |   |           |   |   |   |       |   |   |   |   |   |
80           107 118 115-114 123  98  81  86--85  90  73  64--65  68  57
81             |   |   |   |   |   |   |       |   |   |           |   |
82           108 117-116 113 124  97  82--83--84  91  72--71--70--69  56
83             |           |   |   |               |                   |
84           109-110-111-112 125  96--95--94--93--92  51--52--53--54--55
85                             |                       |
86           130-129-128-127-126  17--18--19--20--21  50  37--36--35--34
87             |                   |               |   |   |           |
88           131 144-145-146-147  16   9-- 8-- 7  22  49  38  41--42  33
89             |   |           |   |   |       |   |   |   |   |   |   |
90           132 143 140-139 148  15  10--11   6  23  48  39--40  43  32
91             |   |   |   |   |   |       |   |   |   |           |   |
92           133 142-141 138 149  14--13--12   5  24  47--46--45--44  31
93             |           |   |               |   |                   |
94           134-135-136-137 150   1-- 2-- 3-- 4  25--26--27--28--29--30
95                             |
96                    ..-152-151
97
98       The count of turns is chosen to make "turns=>0" a straight line, the
99       same as the "SquareSpiral".  "turns=>1" is a single wiggle,
100
101           turns => 1
102
103           66--65--64  61--60  57--56  53--52--51
104            |       |   |   |   |   |   |       |
105           67--68  63--62  59--58  55--54  49--50
106                |                           |
107           70--69  18--17--16  13--12--11  48--47
108            |       |       |   |       |       |
109           71--72  19--20  15--14   9--10  45--46
110                |       |           |       |
111              ...  22--21   2-- 3   8-- 7  44--43
112                    |       |   |       |       |
113                   23--24   1   4-- 5-- 6  41--42
114                        |                   |
115                   26--25  30--31  34--35  40--39
116                    |       |   |   |   |       |
117                   27--28--29  32--33  36--37--38
118
119       In general the repeating figure is a square of turns+1 points on each
120       side, spiralling in and then out again.
121

FUNCTIONS

123       See "FUNCTIONS" in Math::PlanePath for behaviour common to all path
124       classes.
125
126       "$path = Math::PlanePath::GreekKeySpiral->new ()"
127       "$path = Math::PlanePath::GreekKeySpiral->new (turns => $integer)"
128           Create and return a new Greek key spiral object.  The default
129           "turns" is 2.
130
131       "($x,$y) = $path->n_to_xy ($n)"
132           Return the X,Y coordinates of point number $n on the path.
133
134           For "$n < 1" the return is an empty list, it being considered the
135           path starts at 1.
136
137       "$n = $path->xy_to_n ($x,$y)"
138           Return the point number for coordinates "$x,$y".  $x and $y are
139           each rounded to the nearest integer, which has the effect of
140           treating each N in the path as centred in a square of side 1, so
141           the entire plane is covered.
142

SEE ALSO

144       Math::PlanePath, Math::PlanePath::SquareSpiral
145
146       Jo Edkins Greek Key pages
147       "http://gwydir.demon.co.uk/jo/greekkey/index.htm"
148

HOME PAGE

150       <http://user42.tuxfamily.org/math-planepath/index.html>
151

LICENSE

153       Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
154       2020 Kevin Ryde
155
156       This file is part of Math-PlanePath.
157
158       Math-PlanePath is free software; you can redistribute it and/or modify
159       it under the terms of the GNU General Public License as published by
160       the Free Software Foundation; either version 3, or (at your option) any
161       later version.
162
163       Math-PlanePath is distributed in the hope that it will be useful, but
164       WITHOUT ANY WARRANTY; without even the implied warranty of
165       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
166       General Public License for more details.
167
168       You should have received a copy of the GNU General Public License along
169       with Math-PlanePath.  If not, see <http://www.gnu.org/licenses/>.
170
171
172
173perl v5.34.0                      2021-07-22Math::PlanePath::GreekKeySpiral(3)
Impressum