mirando el interior del primer enlace que procided, no es la línea 240:
var repulsiveForce = this.k * this.k/d;
que representan el potencial de repulsión (que es la física). Cuanto mayor sea ese número, menos probable es el estado geométrico. d
es la distancia entre dos nodos, y this.k
es la rigidez de la primavera. Este potencial se vuelve infinito para la distancia d = 0
.
Quiere traducir este potencial en una cierta longitud (el tamaño de sus cajas), así que reemplace d
por d - length
. Eso significa que la fuerza de repulsión se vuelve infinita en la distancia length
. Todavía existe el problema, que las fuerzas de repulsión y luego disminuyen las distancias, más pequeño que length
, que debe ser cubierto por alguna condicional:
if (d + 0.0001 < length) repulsiveForce = bigbigNumber;
que añade 0.0001
de manera que la fuerza de repulsión nunca llega a ser infinita, pero sólo es grande, porque las computadoras no manejan el infinito muy bien.