NAME

Math::PlanePath::MathImageAnvilSpiral -- integer points around an "anvil" shape

SYNOPSIS

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

DESCRIPTION

This path makes a spiral around an anvil shape.

                       ...-78-77-76-75-74       4
                                      /
49-48-47-46-45-44-43-42-41-40-39-38 73          3
  \                             /  /
   50 21-20-19-18-17-16-15-14 37 72             2
     \  \                 /  /  /
      51 22  5--4--3--2 13 36 71                1
        \  \  \     /  /  /  /
         52 23  6  1 12 35 70              <- Y=0
        /  /  /        \  \  \
      53 24  7--8--9-10-11 34 69               -1
     /  /                    \  \
   54 25-26-27-28-29-30-31-32-33 68            -2
  /                                \
55-56-57-58-59-60-61-62-63-64-65-66-67         -3

                   ^
-6 -5 -4 -3 -2 -1 X=0 1  2  3  4  5  6  7

The pentagonal numbers 1,5,12,22,etc, P(k) = (3k-1)*k/2 fall alternately on the X axis X>0, and on the Y=1 horizontal X<0.

Those pentagonals are always composites, from the factorization shown, and as noted in "Step 3 Pentagonals" in Math::PlanePath::PyramidRows, the immediately preceding P(k)-1 and P(k)-2 are also composites. So if plotting the primes on the spiral there's a 3-high horizontal blank line at Y=0,-1,-2 X>0 and Y=1,2,3 X<0 (after the first couple of k's).

Each loop around the spiral is 12 longer than the preceding. Because this is 4* more than the step=3 PyramidRows, straight lines on such a PyramidRows are straight lines here, but split into two parts.

FUNCTIONS

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

$path = Math::PlanePath::MathImageAnvilSpiral->new ()

Create and return a new hexagon spiral object. An optional wider parameter widens the spiral path, it defaults to 0 which is no widening.

($x,$y) = $path->n_to_xy ($n)

Return the X,Y coordinates of point number $n on the path.

For $n < 1 the return is an empty list, it being considered the path starts at 1.

SEE ALSO

Math::PlanePath, Math::PlanePath::OctagramSpiral, Math::PlanePath::HexSpiral