.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Math::PlanePath::TerdragonRounded 3pm" .TH Math::PlanePath::TerdragonRounded 3pm "2014-08-26" "perl v5.20.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Math::PlanePath::TerdragonRounded \-\- triangular dragon curve, with rounded corners .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Math::PlanePath::TerdragonRounded; \& my $path = Math::PlanePath::TerdragonRounded\->new; \& my ($x, $y) = $path\->n_to_xy (123); \& \& # or another radix digits ... \& my $path5 = Math::PlanePath::TerdragonRounded\->new (radix => 5); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a version of the terdragon curve with rounded-off corners, .PP .Vb 10 \& ... 44\-\-\-\-43 14 \& \e / \e \& 46\-\-\-\-45 . 42 13 \& / \& . 40\-\-\-\-41 12 \& / \& 39 . 24\-\-\-\-23 20\-\-\-\-19 11 \& \e / \e / \e \& . 38 25 . 22\-\-\-\-21 . 18 10 \& / \e / \& 36\-\-\-\-37 . 26\-\-\-\-27 . 16\-\-\-\-17 9 \& / \e / \& 35 . 32\-\-\-\-31 . 28 15 . 8 \& \e / \e / \e \& 34\-\-\-\-33 30\-\-\-\-29 . 14 7 \& / \& . 12\-\-\-\-13 . 6 \& / \& 11 . 8\-\-\-\-\-7 5 \& \e / \e \& 10\-\-\-\-\-9 . 6 4 \& / \& . 4\-\-\-\-\-5 3 \& / \& 3 2 \& \e \& . 2 1 \& / \& . 0\-\-\-\-\-1 . <\- Y=0 \& \& ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ \& \-8 \-7 \-6 \-5 \-4 \-3 \-2 \-1 X=0 1 2 3 4 5 6 7 8 .Ve .PP The plain \f(CW\*(C`TerdragonCurve\*(C'\fR is tripled in size and two points on each 3\-long edge are visited by the \f(CW\*(C`TerdragonRounded\*(C'\fR here. .SS "Arms" .IX Subsection "Arms" Multiple copies of the curve can be selected, each advancing successively. The curve is 1/6 of the plane (like the plain terdragon) and 6 arms rotated by 60, 120, 180, 240 and 300 degrees mesh together perfectly. .PP \&\f(CW\*(C`arms => 6\*(C'\fR begins as follows. N=0,6,12,18,etc is the first arm (the curve shown above), then N=1,7,13,19 the second copy rotated 60 degrees, N=2,8,14,20 the third rotated 120, etc. .PP .Vb 10 \& arms=>6 43\-\-\-\-37 72\-\-... \& / \e / \& ... 49 31 66 48\-\-\-\-42 \& / \e / \e / \e \& 73 55 25 60\-\-\-\-54 36 \& \e / \e / \& 67\-\-\-\-61 19\-\-\-\-13 24\-\-\-\-30 \& \e / \& 38\-\-\-\-32 14\-\-\-\-\-8 7 18 71\-\-\-... \& / \e / \e / \e / \& 44 26\-\-\-\-20 2 1 12 65 \& \e / \e \& 50\-\-\-\-56 9\-\-\-\-\-3 . 0\-\-\-\-\-6 59\-\-\-\-53 \& \e / \e \& ... 62 15 4 5 23\-\-\-\-29 47 \& \e / \e / \e / \e / \& 74\-\-\-\-68 21 10 11\-\-\-\-17 35\-\-\-\-41 \& / \e \& 33\-\-\-\-27 16\-\-\-\-22 64\-\-\-\-70 \& / \e / \e \& 39 57\-\-\-\-63 28 58 76 \& \e / \e / \e / \& 45\-\-\-\-51 69 34 52 ... \& / \e / \& ...\-\-75 40\-\-\-\-46 \& \& ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ \& \-11\-10\-9 \-8 \-7 \-6 \-5 \-4 \-3 \-2 \-1 X=0 1 2 3 4 5 6 7 8 9 10 11 .Ve .SH "FUNCTIONS" .IX Header "FUNCTIONS" See \*(L"\s-1FUNCTIONS\*(R"\s0 in Math::PlanePath for the behaviour common to all path classes. .ie n .IP """$path = Math::PlanePath::TerdragonRounded\->new ()""" 4 .el .IP "\f(CW$path = Math::PlanePath::TerdragonRounded\->new ()\fR" 4 .IX Item "$path = Math::PlanePath::TerdragonRounded->new ()" .PD 0 .ie n .IP """$path = Math::PlanePath::TerdragonRounded\->new (arms => $count)""" 4 .el .IP "\f(CW$path = Math::PlanePath::TerdragonRounded\->new (arms => $count)\fR" 4 .IX Item "$path = Math::PlanePath::TerdragonRounded->new (arms => $count)" .PD Create and return a new path object. .ie n .IP """($x,$y) = $path\->n_to_xy ($n)""" 4 .el .IP "\f(CW($x,$y) = $path\->n_to_xy ($n)\fR" 4 .IX Item "($x,$y) = $path->n_to_xy ($n)" Return the X,Y coordinates of point number \f(CW$n\fR on the path. Points begin at 0 and if \f(CW\*(C`$n < 0\*(C'\fR then the return is an empty list. .Sp Fractional positions give an X,Y position along a straight line between the integer positions. .SS "Level Methods" .IX Subsection "Level Methods" .ie n .IP """($n_lo, $n_hi) = $path\->level_to_n_range($level)""" 4 .el .IP "\f(CW($n_lo, $n_hi) = $path\->level_to_n_range($level)\fR" 4 .IX Item "($n_lo, $n_hi) = $path->level_to_n_range($level)" Return \f(CW\*(C`(0, 2 * 3**$level \- 1)\*(C'\fR, or for multiple arms return \f(CW\*(C`(0, 2 * $arms * 3**$level \- 1)\*(C'\fR. .Sp These level ranges are like \f(CW\*(C`TerdragonMidpoint\*(C'\fR but with 2 points on each line segment terdragon line segment instead of 1. .SH "FORMULAS" .IX Header "FORMULAS" .SS "X,Y Visited" .IX Subsection "X,Y Visited" When arms=6 all \*(L"hex centred\*(R" points of the plane are visited, being those points with .PP .Vb 1 \& X+3Y mod 6 == 2 or 4 "hex_centred" .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" Math::PlanePath, Math::PlanePath::TerdragonCurve, Math::PlanePath::TerdragonMidpoint, Math::PlanePath::DragonRounded .PP Jorg Arndt \f(CW\*(C`http://www.jjj.de/fxt/#fxtbook\*(C'\fR section 1.31.4 \*(L"Terdragon and Hexdragon\*(R", where this rounded terdragon is called hexdragon. .IX Xref "Arndt, Jorg fxtbook" .SH "HOME PAGE" .IX Header "HOME PAGE" .SH "LICENSE" .IX Header "LICENSE" Copyright 2012, 2013, 2014 Kevin Ryde .PP This file is part of Math-PlanePath. .PP Math-PlanePath is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. .PP Math-PlanePath is distributed in the hope that it will be useful, but \&\s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE. \s0 See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with Math-PlanePath. If not, see .