=1000)) {
$zuf=100;
}
if (($n <= 5) or ($n >=2000)) {
$n=100;
}
if (($df <= 0) or ($df >=1)) {
$df=0.9;
}
# Zufallsgenerator initialisieren
mt_srand ((double)microtime()*1000000);
# Anfangsauslenkung links und rechts
$xr1=0;
$xr2=0;
#Gewichtung der Iterationsanteile; $par2+$par3+$par=0.5!
$par1=$zuf;
$par2=mt_rand(100,900)/1000;
$par3=(1-$par2)*0.4;
$par4=(1-$par2)*0.1;
# Iteration berechnen ...
# h, g: Höhe der Auslenkung
$anz=1000;
$anzz=$anz+1;
# Rand- und Startwerte
$h[0]=0;
$h[$anzz]=0;
$g[0]=0;
$g[$anzz]=0;
for ($j = 1; $j <= $anz; $j++) {
$t=($j-1)/$anzz;
$h[$j]=$xr2*$t+$xr1*(1-$t);
}
$anz2=$n;
for ($k = 1; $k <= $anz2; $k++) {
$par1=$par1*$df;
for ($j = 1; $j <= $anz; $j++) {
$jm=max(0,$j);
$jp=min(1000,$j);
# iterierte Höhe = Zufallsanteil + Anteil abhängig von Nachbarn + Anteil vorheriger Iterationsschritt
$g[$j]=$par1*mt_rand(-1000,1000)/1000 +$par4*($h[$jm]+$h[$jp]) +$par3*($h[$j-1]+$h[$j+1]) +$par2*$h[$j];
}
$h=$g;
}
# zum Abschätzen der viewBox
$xmin=1000;
$xmax=0;
$ymin=1000;
$ymax=-100;
# Linie malen
$pax=0;
$pay=$h[0];
$pfad="\n";
# viewBox
$xd=$xmax-$xmin+40;
$yd=$ymax-$ymin+40;
$xmin=$xmin-20;
$ymin=$ymin-20;
$vb="$xmin $ymin $xd $yd";
# SVG-header senden:
$content="Content-type: image/svg+xml";
header($content);
echo " \n";
?>