Math::PlanePath::StaircaseAlternating3pm
Usage
use Math::PlanePath::StaircaseAlternating;my $path = Math::PlanePath::StaircaseAlternating->new;my ($x, $y) = $path->n_to_xy (123);
Overview
This path makes a staircase pattern up from Y axis down to the X and then back up again.
10 46|9 47--48|8 45 49--50| |7 44--43 51--52| |6 16 42--41 53--54| | |5 17--18 40--39 55--...| |4 15 19--20 38--37| | |3 14--13 21--22 36--35| | |2 2 12--11 23--24 34--33| | | |1 3-- 4 10-- 9 25--26 32--31| | | |Y=0 -> 1 5-- 6 8-- 7 27--28 30--29^X=0 1 2 3 4 5 6 7 8
Square Ends
Option "end_type => "square"" changes the path as follows, omitting one point at each end so as to square up the joins.
9 42--43| |8 41 44--45| |7 40--39 46--47| |6 . 38--37 48--49| |5 14--15 36--35 50--...| | |4 13 16--17 34--33| | |3 12--11 18--19 32--31| | |2 . 10-- 9 20--21 30--29| | |1 2-- 3 8-- 7 22--23 28--27| | | | |Y=0 -> 1 4-- 5-- 6 . 24--25--26^X=0 1 2 3 4 5 6 7 8
The effect is to shorten each diagonal by a constant 1 each time. The lengths of each diagonal still grow by +4 each time (or by +16 up and back).
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,
n_start => 0 n_start => 0, end_type=>"square"46 47 41 4244 48 49 40 43 4443 42 50 51 39 38 45 4615 41 40 52 53 37 36 47 4816 17 39 38 ... 13 14 35 34 ...14 18 19 37 36 12 15 16 33 3213 12 20 21 35 34 11 10 17 18 31 301 11 10 22 23 33 32 9 8 19 20 29 282 3 9 8 24 25 31 30 1 2 7 6 21 22 27 260 4 5 7 6 26 27 29 28 0 3 4 5 23 24 25
Functions
See "FUNCTIONS" in Math::PlanePath for behaviour common to all path classes.
- "$path = Math::PlanePath::StaircaseAlternating->new ()"
- "$path = Math::PlanePath::StaircaseAlternating->new (end_type => $str, n_start => $n)"
-
Create and return a new path object. The
"end_type"choices are"jump" (the default)"square"
- "($x,$y) = $path->n_to_xy ($n)"
-
Return the X,Y coordinates of point number
$non the path.
Oeis
Entries in Sloane's Online Encyclopedia of Integer Sequences related to this path include
<http://oeis.org/A084849> (etc)
end_type=jump, n_start=1 (the defaults)A084849 N on diagonal X=Yend_type=jump, n_start=0A014105 N on diagonal X=Y, second hexagonal numbersend_type=jump, n_start=2A096376 N on diagonal X=Yend_type=square, n_start=1A058331 N on diagonal X=Y, 2*squares+1end_type=square, n_start=0A001105 N on diagonal X=Y, 2*squares
Home page
<http://user42.tuxfamily.org/math-planepath/index.html>
Releases
6 releases since Debian 8 (Jessie); the text changed 3 times.