NAME
Math::PlanePath::MathImageOctzagCurve -- zig-zag of eight segments
SYNOPSIS
use Math::PlanePath::MathImageOctzagCurve;
my $path = Math::PlanePath::MathImageOctzagCurve->new;
my ($x, $y) = $path->n_to_xy (123);
DESCRIPTION
This is a self-similar zig-zag of eight segments,
18-19 5
| |
16-17 20 23-24 4
| | | |
15-14 21-22 25-26 3
| |
11-12-13 29-28-27 2
| |
2--3 10--9 30-31 58-59 ... 1
| | | | | | |
0--1 4 7--8 32 56-57 60 63-64 <- Y=0
| | | | | |
5--6 33-34 55-54 61-62 -1
| |
37-36-35 51-52-53 -2
| |
38-39 42-43 50-49 -3
| | | |
40-41 44 47-48 -4
| |
45-46 -5
^
X=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
The base figure is the initial N=0 to N=8 section,
2---3
| |
0---1 4 7---8
| |
5---6
It then repeats, with sections turned to follow edge directions, so N=8 to N=16 is the same shape going upwards, then N=16 to N=24 across, N=24 to N=32 downwards, etc.
The result is the base zigzag at ever greater scale extending to the right and with wiggly lines making up the segments. The wiggles don't overlap.
A given replication extends to
Nlevel = 8^level
X = 4^level
Y = 0
Ymax = 4^0 + 4^1 + ... + 4^level # 11...11 in base 4
= (4^(level+1) - 1) / 3
Ymin = - Ymax
FUNCTIONS
$path = Math::PlanePath::MathImageOctzagCurve->new ()
-
Create and return a new path object.
($x,$y) = $path->n_to_xy ($n)
-
Return the X,Y coordinates of point number
$n
on the path. Points begin at 0 and if$n < 0
then the return is an empty list.
SEE ALSO
Math::PlanePath, Math::PlanePath::KochCurve
Math::Fractal::Curve -- its examples/generator4.pl is this curve