d3力导向图减少摩擦导致链路较弱

时间:2015-01-09 18:36:45

标签: javascript d3.js

为什么降低摩擦力(即增加摩擦参数)会导致d3.js的力导向图中的链路变弱?

d3.js中的代码相对简单,暗示节点移回其先前位置,其大小与摩擦常数成正比:

      o.x -= (o.px - (o.px = o.x)) * friction;
      o.y -= (o.py - (o.py = o.y)) * friction;

但我无法从概念上理解为什么当摩擦参数较高时,这会导致链接节点之间的距离更大。下面是一个小提琴的例子:

http://jsfiddle.net/pkerpedjiev/akd7dzg6/

高摩擦参数:

friction = 0.95

节点之间的距离:

(index):107 35.14850879446412
(index):107 34.77210062116354
(index):107 36.06111990572048
(index):107 36.09670409235906
(index):107 35.152385179015

增加(减小参数)摩擦导致节点之间的距离更近:

friction = 0.10

(index):107 28.78454446981791
(index):107 29.591866108497356
(index):107 28.645142627737293
(index):107 29.546890048512065

任何人都可以定性地描述为什么会这样,以及是否有办法解决这个问题,以便无论摩擦参数是什么,链接距离都保持不变?

0 个答案:

没有答案