#!/usr/local/bin/perl # blckcrcl.pl - Generate block pattern to fit circle # # Copyright 2015 David Meyer +JMJ # (License and documentation at bottom of file.) # Modules ########################################################### #use strict; use warnings; use Getopt::Std; # Configuration ##################################################### # Globals ########################################################### # Functions ######################################################### # Process arguments ################################################# %options = (); getopts('', \%options); # Main driver ####################################################### $diam = shift; print < blckcrcl.pl output END if ($diam % 2 == 0) { # Even diameter $r = $diam / 2; for $z (1 .. $r) { for $x (1 .. $r) { $dist = sqrt(($x-0.5)**2 + ($z-0.5)**2); if ($dist <= $r) {$result = '[]';} else {$result = ' ';} print ""; } print "\n"; } } else { # Odd diameter $r = ($diam - 1) / 2; for $z (0 .. $r) { for $x (0 .. $r) { $dist = sqrt($x**2 + $z**2); if ($dist < ($r + 0.3)) { if ($z == 0 && $x == 0) {$result = '00';} elsif ($z == 0) {$result = '--';} elsif ($x == 0) {$result = '|';} else {$result = '[]';} } else { $result = ' '; } print ""; } print "\n"; } } print "
$result
$result
\n\n\n"; exit 0 __END__ # Documentation ##################################################### =head1 NAME template.pl - Perl script template (command line) =head1 SYNOPSIS/USAGE =head1 DESCRIPTION Mark up code elements with C<>, file names with F<> (or C<> for readability), command names with B<>. Also I<> for italics, U<> for underline. Entities: E ('<'), E ('>'). =head1 OPTIONS =item B<-o> I, B<--option>=I =head1 RETURN VALUE =head1 ERRORS =head1 DIAGNOSTICS =head1 EXAMPLES =head1 ENVIRONMENT =over 6 =item VARIABLE Description of usage of environment variable C. =back =head1 FILES =head1 BUGS, LIMITATIONS, AND CAVEATS =head1 NOTES =head1 AUTHOR David Meyer =head1 HISTORY =head1 COPYRIGHT AND LICENSE Copyright 201x David Meyer =head1 SEE ALSO # Emacs control ##################################################### #Local variables: #mode: perl #End: