이야기, 1 부
오후 일찍, 10 월 말 햇볕이 소년과 친구들과 함께합니다. 아직 두렵지 않습니다. 할로윈은 몇 시간 거리에 있습니다.
비디오 및 코드
이 비디오 시퀀스는 구 주위에 3200 개의 점을 균등하게 배치하기위한 시뮬레이션 된 어닐링을 보여줍니다. 처음에는 점이 북극에서 남극으로 이중 나선으로 배치됩니다. 나는 이중 나선을 시도하지 않았습니다. 좀 더 초기 확산을 기대했지만 어쨌든 작동합니다. 색상은 시각화를위한 것입니다. 초기 포인트 후 어닐링 프로세스가 시작됩니다. 위키 백과 "물리적 어닐링 공정"은 금속이 가열되어 결정화 된 구조를 이완시켜 원자가 다른 관계로 이동할 수있게하는 방법을 설명합니다. 일부 재료는 10 월 햇볕에 따뜻하게 어닐링 될 수도 있습니다. 여기 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<