sub trajectory(@) { # read parsed start pos, end pos, time my ($xstart, $xend, $time) = @_; use constant GRAVITY => 4; my $xmove = $xend - $xstart; my $xvel = $xmove / $time; my $yinitvel = GRAVITY*$time/2; my $ystart = 0; # return y=at^2 + bt + c, x = dt + e as (a,b,c,d,e) return (-&GRAVITY, $yinitvel, $ystart, $xvel, $xstart); } 1;