NAME
Math::PlanePath::QuadricCurve -- eight segment zig-zag
SYNOPSIS
use Math::PlanePath::QuadricCurve;
my $path = Math::PlanePath::QuadricCurve->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,
2---3
| |
0---1 4 7---8
| |
5---6
It then repeats, 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 at ever greater scale extending to the right and with wiggly lines making up the segments. The wiggles don't overlap.
Level Ranges
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
See "FUNCTIONS" in Math::PlanePath for the behaviour common to all path classes.
$path = Math::PlanePath::QuadricCurve->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::QuadricIslands, Math::PlanePath::KochCurve
Math::Fractal::Curve -- its examples/generator4.pl is this curve
HOME PAGE
http://user42.tuxfamily.org/math-planepath/index.html
LICENSE
Copyright 2011 Kevin Ryde
This file is part of Math-PlanePath.
Math-PlanePath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Math-PlanePath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Math-PlanePath. If not, see <http://www.gnu.org/licenses/>.