故事,第1部分
午後,十月下旬的陽光與男孩和他的朋友一起玩。 還不可怕。萬聖節距離我們數小時。
視頻和代碼
該視頻序列顯示了模擬退火,可將3200個點均勻地放置在一個球體上。 最初,將這些點放置在從北極到南極的雙螺旋中。 我不是想雙重螺旋;我希望更多的初始傳播,但是無論如何它都能起作用。 顏色僅用於可視化。 在初始點之後,退火過程開始。 維基百科描述了一種物理退火過程,其中加熱金屬以放鬆晶體結構,使原子移動到不同的關係。 某些材料甚至可能在十月的烈日下退火。 這裡的JSL已針對視頻進行了調整,並未針對其他任何內容進行優化...但是足夠好。 在退火階段,加熱和冷卻的時間表將控制這些點距離其最近鄰點有幾英寸的距離。 由於兩極之間擠滿了很多點,因此計劃表需要使系統保持一段時間的熱度,以便這些點有時間遷移。 在這種“高溫”下,這些點跳得足夠遠,以至於它們常常太遠地進入另一個點附近。 日程安排的逐漸冷卻階段使積分下降,移動越來越少。 視頻在完全解決之前就結束了。
退火-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<