作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在 D3.js 的力导向布局中,LinkDistance 和 LinkStrength 是如何相关的?我假设他们是,如果我错了请纠正我。
我知道 linkDistance 定义了任何一对节点之间的长度,并且本质上用作力布局中的约束。但是 linkStrength 起什么作用呢? D3.js 的 API 文档将其定义为“链接到 [0,1] 范围内指定值的强度(刚性)”,这里的“刚性”到底是什么意思?
最佳答案
您可以将链接距离视为预期距离,并将强度视为您希望在每次迭代中达到此目标距离的速度。
如果您查看 source code of the force directed layout ,您会发现以下行:
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
此算法是一种优化算法,因此,在每次迭代中您都修改 l
。现在的问题是你必须指定你修改了多少。
在基本算法上,您将具有以下内容以优化距离:
l = ((l = Math.sqrt(l)) - distances[i]) / l;
但是您可能希望对每个链接以及每个单独的链接有更多的控制。因此,您可以将 alpha
属性视为固定参数,将 strength
属性视为随每个链接而变化的参数。
如果你想了解更多关于使用的优化方法,我建议你看看Gauss-Seidel wikipedia page .
关于javascript - D3.js力布局中LinkDistance和LinkStrength的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17355128/
我无法获得基于链接值函数的 linkDistance 和 linkStrength 以用于弯曲链接,我应该如何以及在何处指定这些参数? 我做了一个 JSFiddle基于曲线链接示例,其中代码 .lin
我是一名优秀的程序员,十分优秀!