#!/usr/bin/perl use strict; use constant PI => 4 * atan2 1, 1; use SVG; my $g = 9.8; my $vx = 10.0; my $vy = 0.0; my $dt = 0.1; my $r = 5; my @cors = (0.95,0.9,0.8,0.7); my @clrs = ('red','blue','green','yellow'); my $svg = SVG->new(width=>800,height=>600); $svg->rect(x=>0,y=>0,width=>800,height=>600,fill=>'none',stroke=>'rgb(.3,.3,.3)'); foreach my $cor (@cors) { my $x = 5.0; my $y = 5.0; my $c = pop(@clrs); while ($x <= 795) { $x += $vx*$dt; $y += $vy*$dt + 0.5*$g*$dt*$dt; $vy += $g*$dt; if ($y >= 595) { $vy *= -$cor; $y = 595.0; } $svg->circle(cx=>$x,cy=>$y,r=>$r,stroke =>$c,fill=>"none",opacity => 0.5); } } print $svg->xmlify;