100)){
$kanz=20;
}
} else {
$kanz=20;
}
# Dämpfung
if(isset($_GET['d'])) {
$daem=$_GET['d'];
if (($daem <= 0)OR($daem > 1)){
$daem=1;
}
} else {
$daem=0.997;
}
# Wieviele Runden Schwingungen (bei Dämpfung nicht 1)
if(isset($_GET['r'])) {
$runden=$_GET['r'];
if (($runden <= 0)OR($runden > 100)){
$runden=10;
}
} else {
$runden=10;
}
if ($daem==1) {
$runden=1;
}
# Wellenzahl/Bogenlänge x
if(isset($_GET['v'])) {
$vz=$_GET['v'];
if (($vz < -$kanz/2)OR($vz > $kanz/2)){
$vz=mt_rand(-500,500)/100;
}
} else {
$vz=mt_rand(-500,500)/100;
}
# Wellenzahl/Bogenlänge y
if(isset($_GET['w'])) {
$wz=$_GET['w'];
if (($wz < -$kanz/2)OR($wz > $kanz/2)){
$wz=mt_rand(-500,500)/100;
}
} else {
$wz=mt_rand(-500,500)/100;
}
#Phase
$phase=mt_rand(0,1000)/500*M_PI;
#Schwebung
$schweb=1+(1-2*mt_rand(0,1))*mt_rand(1,1000)/1000;
# Wenn keine Dämpfung vorliegt, können wir endlos weiterwackeln
if ($daem==1) {
$rd='repeatDur="indefinite"';
$dur=1;
} else {
$rd='';
$dur=5*$runden;
}
$janz=60*$runden;
$sx='';
$sy='';
for ($k = 0; $k <=$kanz; $k++) {
$sk=round($k/$kanz,3);
$valx='';
$valy='';
$dd=1;
for ($j = 0; $j <=$janz; $j++) {
# Zeitabhängigkeit
$b=$j/$janz*$runden*2*M_PI;
$c=$j/$janz*$runden*2*M_PI*$schweb;
$dd=$dd*$daem;
# Ortsabhängigkeit der Schwingung
$vin=$k/$kanz*$vz*2*M_PI;
$win=$k/$kanz*$wz*2*M_PI+$phase;
# Schwingung
$colx=round(127.5 + $dd*127.5*sin($vin)*sin($b));
$coly=round(127.5 + $dd*127.5*sin($win)*sin($c));
$comx=255-$colx;
$comy=255-$colx;
if ($j!=$janz) {
$valx.="rgb($colx,$comx,0); ";
$valy.="rgb($comy,0,$coly); ";
} else {
$valx.="rgb($colx,$comx,0)";
$valy.="rgb($comy,0,$coly)";
}
}
# stops basteln
$sx.= "
";
$sy.= "
";
}
# svg-header senden:
$content="Content-type: image/svg+xml; charset=UTF-8";
header($content);
# xml-Zeile ausgeben
echo "";
# und jetzt das Dokument
?>