1000)){ $dur=120; } # Parameter k,l if(isset($_GET['k'])) { $kw=$_GET['k']; } else { $kw=2*M_PI/$dur; $kw=$kw*$kw*100; } if(isset($_GET['l'])) { $lw=$_GET['l']; } else { $lw=mt_rand(10,1000)/10; $lw=$lw*$lw/100000; } # Anzahl der Animationspunkte $anz=600; #Anfangswert: $x0=3; $v0=-1.0*mt_rand(10,1000)/1000; #$v0=0; $pathfak=50/$x0; # Funktion definieren function funcdgl ($t,$x,$v) { global $kw, $lw; $dummy=-$kw*sin($x) -$lw*$v; return $dummy; } # stroke-dasharray-Weglaenge $ssum = 0; # values und Pfad berechnen $x=$x0; $v=$v0; $px=round($x*$pathfak); $ppx=round($x/M_PI*180.0,2); $values="$ppx"; $pfad="M$px,100L"; $dash="0,1E6"; $dt=$dur/$anz; $vorherx=$px; $vorhery=100; # for ($j = 1; $j <= $anz; $j++) { $y=800/$anz*$j; $t=$dt*$j; $kutta1=funcdgl($t,$x,$v); $kutta2=funcdgl($t+$dt/2.0,$x+$v*$dt/2.0+$kutta1/8.0*$dt*$dt,$v+$kutta1*$dt/2.0); $kutta3=funcdgl($t+$dt/2.0,$x+$v*$dt/2.0+$kutta1/8.0*$dt*$dt,$v+$kutta2*$dt/2.0); $kutta4=funcdgl($t+$dt,$x+$v*$dt+$kutta3/2.0*$dt*$dt,$v+$kutta3*$dt); $x=$x +$v*$dt+$dt*$dt*($kutta1+$kutta2+$kutta3)/6.0; $v=$v+$dt*($kutta1+2.0*$kutta2+2.0*$kutta3+$kutta4)/6.0; $px=round($x*$pathfak); $ppx=round($x/M_PI*180.0,2); $py=round(100+$y); $values .=";$ppx"; $pfad .=" $px,$py"; $hx=$px-$vorherx; $hy=$py-$vorhery; $ssum = $ssum+sqrt($hx*$hx+$hy*$hy); $vorherx=$px; $vorhery=$py; $psum=round($ssum); $dash .=";$psum,1E6"; } # svg-header senden: $content="Content-type: image/svg+xml"; header($content); # Automatisches Neuladen, muss nicht funktionieren! if ($auto=="ja") { $dura=$dur+5; $content="refresh: $dura; url=bwgl2.php?auto=ja&dur=$dur&k=$kw&l=$lw"; } # Sicherstellen dass dann auch neu vom server geladen wird: header($content); # xml-Zeile ausgeben echo ""; # und jetzt das Dokument ?> Pendel mit Reibung Ein Pendel mit Stokesscher Reibung als Differentialgleichung wird numerisch gelöst. dv/dt=-k sin(x) -l v dx/dt = v Die Dauer der Animation dur, k und l sind als GET-Parameter verfügbar. " xlink:title="Neu starten und dann jeweils nach Ablauf der Animation automatisch neu starten (muß nicht bei allen Darstellungsprogrammen funktionieren)"> " xlink:title="Neue Animation starten, weiteren automatischen Neustart unterbinden"> O H 2006