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