=$nb) or ($p<=$wl)) { $zz[$j][$k]=1; } } } } for ($j = -$any; $j < $any; $j++) { for ($k = -$anx; $k <= $anx; $k++) { # falls es leuchtet oder pausiert hochzählen if (($zz[$j][$k]==1) OR ($w[$j][$k]>0)) { $w[$j][$k]=$w[$j][$k]+1; } # falls Leuchtdauer zuende: #if (($w[$j][$k]<$gd) AND ($w[$j][$k]>0)) { # $w[$j][$k]=$w[$j][$k]+1; if ($w[$j][$k]>$ld) { $zz[$j][$k]=0; } #} # falls Gesamtdauer zuende if ($w[$j][$k]>=$gd){ $w[$j][$k]=0; $zz[$j][$k]=0; } # an oder aus als Animationswert if ($zz[$j][$k]==1) { $values[$j][$k].='1;'; } else { $values[$j][$k].='0;'; } } } $z=$zz; } # hexagonale Anordnung ... for ($j = -$any; $j < $any; $j++) { $py=round($j*$abs*$ky); $ox=-$abs/2*(($j+2*$any)%2); for ($k = -$anx; $k <= $anx; $k++) { $px=round($k*$abs+$ox); $value=$values[$j][$k].'0'; #$j $k $raus.=" \n"; } } # Speicher schon mal leeren unset($z); unset($zz); unset($w); unset($values); # Da das sehr effizient zu komprimieren ist: # Bild in Speicher schreiben ob_start(); echo " \n"; ?> Leuchtschwarm In hexagonaler Anordnung sind Punkte angeordnet, die entweder hell oder dunkel sind. Die Anordnung erfolgt jeweils mit periodischen Randbedingungen. Dies simuliert grob eine Kolonie von Leuchtkäfern, von denen jeder nur endlich lang leuchten kann und danach eine Pause braucht. Ein Käfer entscheidet entweder spontan, daß er leuchten will, oder er richtet sich nach seinen 24 nächsten Nachbarn. Beides nur, wenn er gerade nicht leuchtet oder keine Pause nach dem Leuchten einlegen muß. Die Abhängigkeit von den Nachbarn wird mit dem Abstandsquadrat gewichtet, für die 6 nächsten Nachbarn gibt es jeweils einen Gewichtungspunkt, für die nächsten 6 gibt es 3 Gewichtungspunkte und für die nächsten 6 dann 4 Gewichtungspunkte. Durch die Pausen und die Verzögerung hängt es nun stark von diesen Parametern ab und davon, wieviele Nachbarn leuchten müssen, damit ein Käfer selbst anfängt zu leuchten, wie sich die Situation entwickelt, die mit einer zufälligen Verteilung von leuchtenden oder nicht leuchtenden Käfern beginnt. Geometrische Parameter: x: horizontale Ausdehnung des Bildes () y: vertikale Ausdehnung des Bildes () m: Maßeinheit dafür, %, px, cm, mm () Schwarmparameter: n: Anzahl der Durchläufe und Animationsdauer in Sekunden, n maximal 10000 () abs: Abstand zu den 6 nächsten Nachbarn, 200-2000 () ld: Leuchtdauer in Sekunden, 0-100 () pd: Minimale Pause nach dem Leuchten, 0-100 () wl: Wahrscheinlichkeit spontanen Leuchtens, falls gerade nicht geleuchtet wird, in Promille-Werten, maximal zwei Nachkommastellen, 0-1000 () nb: Wieviele Nachbarn müssen mindestens leuchten, um eigenes Leuchten zu induzieren, Gewichtungspunkte 1-48 () wa: Welcher Anteil ist anfangs an, in Promille-Werten, maximal zwei Nachkommastellen, 0-1000 () kombi: Interessante Kombinationen, überschreibt Schwarmparameter nb, ld, pd, wl und wa, 1-5 ()