Geschichte, Teil 1
Am frühen Nachmittag spielt die späte Oktobersonne mit dem Jungen und seinen Freunden. Es ist noch nicht beängstigend. Halloween ist Stunden entfernt.
Video und Code
Diese Videosequenz zeigt Simulated Annealing zum gleichmäßigen Platzieren von 3200 Punkten um eine Kugel. Zunächst werden die Punkte vom Nordpol zum Südpol in einer Doppelspirale angeordnet. Ich habe nicht nach einer Doppelspirale gesucht. Ich hatte gehofft, dass sich etwas mehr verbreitet, aber es funktioniert trotzdem. Die Farben dienen nur der Visualisierung. Nach den Anfangspunkten beginnt der Glühprozess. Wikipedia beschreibt einen physikalischen Glühprozess, bei dem Metall erhitzt wird, um eine kristallisierte Struktur zu entspannen, wodurch sich die Atome in eine andere Beziehung bewegen können. Einige Materialien können sogar in der Wärme der Oktobersonne geglüht werden. Die JSL hier ist für das Video optimiert und nicht für irgendetwas anderes optimiert ... aber gut genug. Während der Glühphase regelt ein Heiz- und Kühlplan, wie weit die Punkte von ihrem nächsten Nachbarn entfernt sein dürfen. Da viele Punkte an den Polen zusammengedrängt sind, muss der Zeitplan das System ein wenig heiß halten, damit diese Punkte Zeit haben, um wegzuwandern. Bei dieser „hohen Temperatur“ springen die Punkte so weit, dass sie häufig zu weit in die Nachbarschaft eines anderen Punkts reichen. Durch die allmähliche Abkühlphase des Zeitplans setzen sich die Punkte ab und bewegen sich immer weniger. Das Video endet, bevor sie vollständig erledigt sind.
Glühen - YouTube

nnodes = 3200;
xx = -nnodes * 3 / 2;
nodelocs = J( nnodes, 3, 0 ); // x,y,z point for each node
For( i = 1, i <= nnodes, i++,
f = i / nnodes; // 0..1
z = Cos( f * Pi() ); // top to bottom
r = Sin( f * Pi() ); // radius
x = Sin( 10000 * f ) * r; // 10,000 radians
y = Cos( 10000 * f ) * r; // is way too many. but it works...
nodelocs[i, 1] = x;
nodelocs[i, 2] = y;
nodelocs[i, 3] = z;
);
//nodeobj = scene displaylist(); nodeobj<