Provided by: libmath-planepath-perl_113-1_all
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 Turn The sequence of turns made by the curve is straightforward. In the base 8 (octal) representation of N, the lowest non-zero digit gives the turn low digit turn (degrees) --------- -------------- 1 +90 2 -90 3 -90 4 0 5 +90 6 +90 7 -90 When the least significant digit is non-zero it determines the turn, to make the base N=0 to N=8 shape. When the low digit is zero it's instead the next level up, the N=0,8,16,24,etc shape which is in control, applying a turn for the subsequent base part. So for example at N=16 = 20 octal 20 is a turn -90 degrees.
FUNCTIONS
See "FUNCTIONS" in Math::PlanePath for 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.
OEIS
Entries in Sloane's Online Encyclopedia of Integer Sequences related to this path include <http://oeis.org/A133851> (etc) A133851 Y at N=2^k, being successive powers 2^j at k=1mod4
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, 2012, 2013 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/>.