Historia, parte 1
Temprano en la tarde, el sol de finales de octubre juega con el niño y sus amigos. Todavía no da miedo. Halloween está a horas de distancia.
Video y Código
Esta secuencia de video muestra el recocido simulado para colocar uniformemente 3200 puntos alrededor de una esfera. Inicialmente, los puntos se colocan en una espiral doble desde el polo norte hasta el polo sur. No estaba intentando una doble espiral; Esperaba un poco más de difusión inicial, pero funciona de todos modos. Los colores son solo para la visualización. Después de los puntos iniciales, comienza el proceso de recocido. wikipedia describe un proceso de recocido físico, donde el metal se calienta para relajar una estructura cristalizada, permitiendo que los átomos se muevan a una relación diferente. Algunos materiales pueden incluso ser recocidos en el calor del sol de octubre. El JSL aquí está ajustado para el video y no está optimizado para nada más ... pero lo suficientemente bueno. Durante la fase de recocido, un programa de calefacción y refrigeración controla cuánto se permite que los puntos se alejen a centímetros de su vecino más cercano. Debido a que hay muchos puntos apiñados en los polos, el programa debe mantener el sistema caliente durante un tiempo para que esos puntos tengan tiempo de migrar. A esa "temperatura alta", los puntos están saltando lo suficientemente lejos como para ir demasiado lejos al vecindario de otro punto. La fase de enfriamiento gradual del programa permite que los puntos se calmen, moviéndose cada vez menos. El video termina antes de que se hayan resuelto por completo.
Recocido - 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<