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 ?> Schwingung: longitudinal Longitudinale Schwingung zweier Farbverläufe. Parameter: Dämpfung d: 1 ohne Dämpfung, typisch um 0.995. Runden: r: größer als 0, maximal 100 (große Datei!), Anzahl der Schwingungen bei Dämpfung. Anzahl Stützpunkte s: mindestens 5, maximal 100 (große Datei!), Vorgabe 10. Wellenzahl/Bogenlänge v, w: Müssen zwischen -s/2 und s/2 liegen, in x- und y-Richtung, Vorgabe zufällig.