# NAME

Math::PlanePath::PentSpiralSkewed -- integer points in a pentagonal shape

# SYNOPSIS

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

# DESCRIPTION

This path makes a pentagonal (five-sided) spiral with points skewed so as to fit a square grid and fully cover the plane.

``````          10 ...             2
/  \  \
11  3  9 20           1
/  /  \  \  \
12  4  1--2  8 19    <- Y=0
\  \       |  |
13  5--6--7 18       -1
\          |
14-15-16-17       -2

^  ^  ^  ^  ^  ^
-2 -1 X=0 1  2  3 ...``````

The pattern is similar to the `SquareSpiral` but cuts three corners which makes each cycle is faster. Each cycle is just 5 steps longer than the previous (where it's 8 for a `SquareSpiral`).

## N Start

The default is to number points starting N=1 as shown above. An optional `n_start` can give a different start, in the same pattern. For example to start at 0,

``````                38             n_start => 0
39 21 37  ...
40 22  9 20 36 57
41 23 10  2  8 19 35 56
42 24 11  3  0  1  7 18 34 55
43 25 12  4  5  6 17 33 54
44 26 13 14 15 16 32 53
45 27 28 29 30 31 52
46 47 48 49 50 51``````

# FUNCTIONS

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

`\$path = Math::PlanePath::PentSpiral->new ()`
`\$path = Math::PlanePath::PentSpiral->new (n_start => \$n)`

Create and return a new path object.

`\$n = \$path->xy_to_n (\$x,\$y)`

Return the point number for coordinates `\$x,\$y`. `\$x` and `\$y` are each rounded to the nearest integer, which has the effect of treating each point in the path as a square of side 1.

# OEIS

Entries in Sloane's Online Encyclopedia of Integer Sequences related to this path include

``````    n_start=1 (the default)
A192136    N on X axis, (5*n^2 - 3*n + 2)/2
A140066    N on Y axis
A116668    N on X negative axis, (5n^2 + n + 2)/2
A134238    N on Y negative axis
A158187    N on North-West diagonal, 10*n^2 + 1
A005891    N on South-East diagonal, centred pentagonals

n_start=0
A000566    N on X axis, heptagonal numbers
A005476    N on Y axis
A005475    N on X negative axis
A147875    N on Y negative axis, second heptagonals
A033583    N on North-West diagonal, 10*n^2
A028895    N on South-East diagonal, 5*triangular``````

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