Math::PlanePath::QuadricIslands3pm
Usage
use Math::PlanePath::QuadricIslands;my $path = Math::PlanePath::QuadricIslands->new;my ($x, $y) = $path->n_to_xy (123);
Overview
This path is concentric islands made from four sides each an eight segment zig-zag (per the "QuadicCurve" path).
27--26 3| |29--28 25 22--21 2| | | |30--31 24--23 20--19 1| 4--3 |34--33--32 | 16--17--18 <- Y=0| 1--2 |35--36 7---8 15--14 -1| | |5---6 9 12--13 -2| |10--11 -3^-3 -2 -1 X=0 1 2 3 4
The initial figure is the square N=1,2,3,4 then for the next level each straight side expands to 4x longer and a zigzag like N=5 through N=13 and the further sides to N=36. The individual sides are levels of the "QuadricCurve" path.
*---*| |*---* becomes *---* * *---*| |*---** <------ *| ^| || |v |* ------> *
The name "QuadricIslands" here is a slight mistake. Mandelbrot ("Fractal Geometry of Nature" 1982 page 50) calls any islands initiated from a square "quadric", not just this eight segment expansion. This curve also appears (unnamed) in Mandelbrot's "How Long is the Coast of Britain", 1967.
Level Ranges
Counting the innermost square as level 0, each ring is
length = 4 * 8^level many pointsNlevel = 1 + length[0] + ... + length[level-1]= (4*8^level + 3)/7Xstart = - 4^level / 2Ystart = - 4^level / 2
For example the lower partial ring shown above is level 2 starting N=(4*8^2+3)/7=37 at X=-(4^2)/2=-8,Y=-8.
The innermost square N=1,2,3,4 is on 0.5 coordinates, for example N=1 at X=-0.5,Y=-0.5. This is centred on the origin and consistent with the (4^level)/2. Points from N=5 onwards are integer X,Y.
4-------3 Y=+1/2| || o ||1-------2 Y=-1/2X=-1/2 X=+1/2
Functions
See "FUNCTIONS" in Math::PlanePath for behaviour common to all path classes.
- "$path = Math::PlanePath::QuadricIslands->new ()"
-
Create and return a new path object.
Level Methods
- "($n_lo, $n_hi) = $path->level_to_n_range($level)"
-
Return per "Level Ranges" above,
( ( 4 * 8**$level + 3) / 7,(32 * 8**$level - 4) / 7 )
Home page
<http://user42.tuxfamily.org/math-planepath/index.html>
Releases
6 releases since Debian 8 (Jessie); the text changed 3 times.