#!/usr/local/bin/perl # blcktrnl.pl - Generate block pattern to fit triangle # # Copyright 2015 David Meyer +JMJ # (License and documentation at bottom of file.) # Modules ########################################################### #use strict; use warnings; use Getopt::Std; use Math::Trig; # Configuration ##################################################### # Globals ########################################################### $SIN60D = sin(pi/3); $TAN60D = tan(pi/3); # Functions ######################################################### # Process arguments ################################################# %options = (); getopts('', \%options); # Main driver ####################################################### $r = shift; print < blcktrnl.pl output END $h = int($r * $SIN60D); for $z (0 .. $h) { for $x (0 .. $r-1) { if ($z <= $x*$TAN60D && $z <= (-1*$x*$TAN60D + 2*$r*$SIN60D)) { $result = '[]'; } else { $result = ' '; } print ""; } print "\n"; } print "
$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: