.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" 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 >0, 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 .\" ======================================================================== .\" .IX Title "Math::PlanePath::CretanLabyrinth 3pm" .TH Math::PlanePath::CretanLabyrinth 3pm "2021-01-23" "perl v5.32.0" "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::CretanLabyrinth \-\- infinite Cretan labyrinth .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Math::PlanePath::CretanLabyrinth; \& my $path = Math::PlanePath::CretanLabyrinth\->new; \& my ($x, $y) = $path\->n_to_xy (123); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a Cretan 7\-circuit style labyrinth extended out infinitely. .PP .Vb 10 \& 81\-\-80\-\-79\-\-78\-\-77\-\-76\-\-75\-\-74\-\-73\-\-72\-\-71\-\-70\-\-69 7 \& | | \& 82 137\-138\-139\-140\-141\-142\-143\-144\-145\-146\-147 68 6 \& | | | | \& 83 136 165\-164\-163\-162\-161\-160\-159\-158\-157 148 67 5 \& | | | | | | \& 84 135 166 49\-\-50\-\-51\-\-52\-\-53\-\-54\-\-55 156 149 66 4 \& | | | | | | | | \& 85 134 167 48 9\-\- 8\-\- 7\-\- 6\-\- 5 56 155 150 65 3 \& | | | | | | | | | | \& 86 133 168 47 10 25\-\-26\-\-27 4 57 154 151 64 2 \& | | | | | | | | | | | | \& 87 132 169 46 11 24 29\-\-28 3 58 153\-152 63 1 \& | | | | | | | | | | \& 88 131 170 45 12 23 30 1\-\- 2 59\-\-60\-\-61\-\-62 <\- Y=0 \& | | | | | | | \& 89 130 171 44 13 22 31\-\-32\-\-33 186\-187\-188\-189 \-1 \& | | | | | | | | | \& 90 129 172 43 14 21\-\-20\-\-19 34 185 112\-111 190 \-2 \& | | | | | | | | | | | \& 91 128 173 42 15\-\-16\-\-17\-\-18 35 184 113 110 ... \-3 \& | | | | | | | | \& 92 127 174 41\-\-40\-\-39\-\-38\-\-37\-\-36 183 114 109 \-4 \& | | | | | | \& 93 126 175\-176\-177\-178\-179\-180\-181\-182 115 108 \-5 \& | | | | \& 94 125\-124\-123\-122\-121\-120\-119\-118\-117\-116 107 \-6 \& | | \& 95\-\-96\-\-97\-\-98\-\-99\-100\-101\-102\-103\-104\-105\-106 \-7 \& \& ^ \& \-7 \-6 \-5 \-4 \-3 \-2 \-1 X=0 1 2 3 4 .Ve .PP The repeating part is the N=59 to N=189 style groups of 4 circuits going back and forward. .PP The gaps between the path are the labyrinth walls. Notice at N=2,59,33,186 the \*(L"+\*(R" joining of those walls which is characteristic of this style labyrinth. .PP .Vb 10 \& | 3 | 58 | \& | | | \& \-\-\-\-\-\-+ | +\-\-\-\-\-\-\- \& | \& 1 2 | 59 60 \& | \& \-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\- walls \& | \& 32 33 | 186 187 \& | \& \-\-\-\-\-\-+ | +\-\-\-\-\-\-\- \& | | | \& | 34 | 185 | .Ve .PP See \fIexamples/cretan\-walls.pl\fR for a sample program carving out the path from a solid block to leave the walls. .SH "FUNCTIONS" .IX Header "FUNCTIONS" See \*(L"\s-1FUNCTIONS\*(R"\s0 in Math::PlanePath for behaviour common to all path classes. .ie n .IP """$path = Math::PlanePath::CretanLabyrinth\->new ()""" 4 .el .IP "\f(CW$path = Math::PlanePath::CretanLabyrinth\->new ()\fR" 4 .IX Item "$path = Math::PlanePath::CretanLabyrinth->new ()" 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. .ie n .IP """$n = $path\->xy_to_n ($x,$y)""" 4 .el .IP "\f(CW$n = $path\->xy_to_n ($x,$y)\fR" 4 .IX Item "$n = $path->xy_to_n ($x,$y)" Return the point number for coordinates \f(CW\*(C`$x,$y\*(C'\fR. If there's nothing at \&\f(CW\*(C`$x,$y\*(C'\fR then return \f(CW\*(C`undef\*(C'\fR. .ie n .IP """$n = $path\->n_start()""" 4 .el .IP "\f(CW$n = $path\->n_start()\fR" 4 .IX Item "$n = $path->n_start()" Return 1, the first N in the path. .SH "SEE ALSO" .IX Header "SEE ALSO" Math::PlanePath, Math::PlanePath::SquareSpiral .SH "HOME PAGE" .IX Header "HOME PAGE" .SH "LICENSE" .IX Header "LICENSE" Copyright 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 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 .