From 665b5a89a6cc1b982cb33309b27a7364f3d841d6 Mon Sep 17 00:00:00 2001 From: Pitchaya Boonsarngsuk <2285135b@student.gla.ac.uk> Date: Fri, 26 Jan 2018 13:09:14 +0000 Subject: [PATCH] Add alpha back to link, just in case --- src/link.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/link.js b/src/link.js index 4fcd5ad..537ea1b 100644 --- a/src/link.js +++ b/src/link.js @@ -3,15 +3,10 @@ import jiggle from "./jiggle"; /** * Modified link force algorithm - * - ignore alpha - * - removed bias - * - modified strength calculation + * - simplify calculations for parameters locked for spring model * - removed other unused functions - * Making it more suitable for the spring model. - * This should initialize and perform calculation a bit faster, and also - * use a bit less memory + * Alpha should be constant 1 for accurate simulation */ - export default function(links) { var dataSizeFactor, distance = constant(30), @@ -21,9 +16,11 @@ export default function(links) { if (links == null) links = []; - function force() { - for (var k = 0, n = links.length; k < iterations; ++k) { // Each iteration in a tick - for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { // For each link + function force(alpha) { + // Each iteration in a tick + for (var k = 0, n = links.length; k < iterations; ++k) { + // For each link + for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) { link = links[i]; // jiggle so it wont divide / multiply by zero after this source = link.source; @@ -31,7 +28,7 @@ export default function(links) { x = target.x + target.vx - source.x - source.vx || jiggle(); y = target.y + target.vy - source.y - source.vy || jiggle(); l = Math.sqrt(x * x + y * y); - l = (l - distances[i]) / l * dataSizeFactor; + l = (l - distances[i]) / l * dataSizeFactor * alpha; x *= l, y *= l; target.vx -= x; target.vy -= y; @@ -49,7 +46,6 @@ export default function(links) { function initializeDistance() { if (!nodes) return; - for (var i = 0, n = links.length; i < n; ++i) { distances[i] = +distance(links[i], i, links); }