在D3.js的力导向布局中,LinkDistance和LinkStrength有什么关系?我假设它们是相关的,如果我错了,请纠正我。
我知道linkDistance定义了任意一对节点之间的长度,并且在力导向布局中起到了约束作用。但是linkStrength扮演了什么角色呢?D3.js的API文档将其定义为“链接刚度(strength)以指定范围[0,1]的值”,这里的“刚度”具体指什么呢?
在D3.js的力导向布局中,LinkDistance和LinkStrength有什么关系?我假设它们是相关的,如果我错了,请纠正我。
我知道linkDistance定义了任意一对节点之间的长度,并且在力导向布局中起到了约束作用。但是linkStrength扮演了什么角色呢?D3.js的API文档将其定义为“链接刚度(strength)以指定范围[0,1]的值”,这里的“刚度”具体指什么呢?
如果你查看力导向布局的源代码,你会找到以下这行代码:
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
l
。现在问题是,您必须指定要修改多少。
在基本算法中,为了优化距离,您需要以下步骤:l = ((l = Math.sqrt(l)) - distances[i]) / l;
alpha
属性视为固定参数,将strength
属性视为每个链接变化的参数。