CAD-Calc
view release on metacpan or search on metacpan
lib/CAD/Calc.pm view on Meta::CPAN
my @rec = line_to_rectangle(\@line, $offset, \%options);
The direction of the returned points will be counter-clockwise around
the original line, with the first point at the 'lower-left' (e.g. if
your line points up, $rec[0] will be below and to the left of
$line[0].)
Available options
ends => 1|0, # extend endpoints by $offset (default = 1)
=cut
sub line_to_rectangle {
my ($ln, $offset, $opts) = @_;
my %options = (ends => 1);
(ref($opts) eq "HASH") && (%options = %$opts);
my @line = @$ln;
($offset > 0) or
croak "offset ($offset) must be positive non-zero\n";
my $a = NewVec(@{$line[0]});
lib/CAD/Calc.pm view on Meta::CPAN
$y_avg += $points[$i][1];
}
# print "avgs: $x_avg $y_avg\n";
$x_avg = $x_avg / $num;
$y_avg = $y_avg / $num;
return($x_avg, $y_avg);
} # end subroutine point_avg definition
=head2 arc_2pt
Given a pair of endpoints and an angle (in radians), returns an arc with
center, radius, and start/end angles.
my %arc = arc_2pt(\@pts, $angle);
=cut
sub arc_2pt {
my ($pts, $angle) = @_;
my $dir = (($angle >= 0) ? 1 : -1);
$angle = abs($angle);
my %arc;
( run in 0.346 second using v1.01-cache-2.11-cpan-b61123c0432 )