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 a "+" 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 0, 1, i, -1, or -i, and those digits are then represented in integer N by base 5 digits 0,1,2,3,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.

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