RosettaCodeData/Task/Averages-Mean-angle/Perl/averages-mean-angle.pl
2015-02-20 00:35:01 -05:00

17 lines
453 B
Raku

sub Pi () { 3.1415926535897932384626433832795028842 }
sub meanangle {
my($x, $y) = (0,0);
($x,$y) = ($x + sin($_), $y + cos($_)) for @_;
my $atan = atan2($x,$y);
$atan += 2*Pi while $atan < 0; # Ghetto fmod
$atan -= 2*Pi while $atan > 2*Pi;
$atan;
}
sub meandegrees {
meanangle( map { $_ * Pi/180 } @_ ) * 180/Pi;
}
print "The mean angle of [@$_] is: ", meandegrees(@$_), " degrees\n"
for ([350,10], [90,180,270,360], [10,20,30]);