Provided by: libmath-planepath-perl_122-1_all bug

NAME

       Math::PlanePath::QuintetReplicate -- self-similar "+" tiling

SYNOPSIS

        use Math::PlanePath::QuintetReplicate;
        my $path = Math::PlanePath::QuintetReplicate->new;
        my ($x, $y) = $path->n_to_xy (123);

DESCRIPTION

       This is a self-similar tiling of the plane with "+" shapes.  It's the same kind of tiling
       as the "QuintetCurve" (and "QuintetCentres"), but with the middle square of the "+" shape
       centred on the origin.

                   12                         3

               13  10  11       7             2

                   14   2   8   5   6         1

               17   3   0   1   9         <- Y=0

           18  15  16   4  22                -1

               19      23  20  21            -2

                           24                -3

                        ^
           -4 -3 -2 -1 X=0  1  2  3  4

       The base pattern is a "+" shape

               +---+
               | 2 |
           +---+---+---+
           | 3 | 0 | 1 |
           +---+---+---+
               | 4 |
               +---+

       which is then replicated

                +--+
                |  |
             +--+  +--+  +--+
             |   10   |  |  |
             +--+  +--+--+  +--+
                |  |  |   5    |
             +--+--+  +--+  +--+
             |  |   0    |  |
          +--+  +--+  +--+--+
          |   15   |  |  |
          +--+  +--+--+  +--+
             |  |  |   20   |
             +--+  +--+  +--+
                      |  |
                      +--+

       The effect is to tile the whole plane.  Notice the centres 0,5,10,15,20 are the same "+"
       shape but rotated around by an angle atan(1/2)=26.565 degrees, as noted below.

   Complex Base
       This tiling corresponds to expressing a complex integer X+i*Y in base b=2+i

           X+Yi = a[n]*b^n + ... + a[2]*b^2 + a[1]*b + a[0]

       where each digit a[i] is

           a[i] digit     N digit
           ----------     -------
               0             0
               1             1
               i             2
              -1             3
              -i             4

       The base b=2+i is at an angle atan(1/2) = 26.56 degrees as seen at N=5 above.  Successive
       powers b^2, b^3, b^4 etc at N=5^level rotate around by that much each time.

           Npow = 5^level
           angle = level*26.56 degrees
           radius = sqrt(5) ^ level

FUNCTIONS

       See "FUNCTIONS" in Math::PlanePath for behaviour common to all path classes.

       "$path = Math::PlanePath::QuintetReplicate->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.

   Level Methods
       "($n_lo, $n_hi) = $path->level_to_n_range($level)"
           Return "(0, 5**$level - 1)".

SEE ALSO

       Math::PlanePath, Math::PlanePath::QuintetCurve, Math::PlanePath::ComplexMinus,
       Math::PlanePath::GosperReplicate

HOME PAGE

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

LICENSE

       Copyright 2011, 2012, 2013, 2014, 2015 Kevin Ryde

       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/>.