D3.js用于力导向图的算法是什么?

ame*_*gin 10 javascript algorithm graph-algorithm d3.js force-layout

我很想知道D3使用什么算法来实现库中的力导向图功能.阅读了Kobourov关于力导向图的历史的总结让我有点困惑的是,库中使用的确切算法或方法(算法/启发式的组合)是什么.

D3 API参考说Barnes-Hut算法用于计算作用于物体的电荷,O(N*log(N))操作.Kobourov的文章提到Quigley-Eades算法和Hu的算法是利用Barnes-Hut的多级算法.其中一个是在D3中以某种方式使用的吗?

API wiki进一步说,Verlet集成用于粒子定位.在源代码中提到高斯-赛德尔算法,该消息又在提到这两个胡锦涛的算法和德威尔的图形布局文件.我想我正在寻找答案的问题是D3使用的"综合"算法; Kobourov的文章列出了几个和D3强制导向的功能似乎并不适合任何一个.

Clé*_*aud 4

在最初的d3 论文中,Mike Bostock 等人。写道 Dwyer 的实现用于力图布局:

力布局结合了物理模拟和迭代约束松弛[7]以实现稳定的图形布局。

[7] T.德怀尔。可扩展、多功能且简单的约束图形布局。在欧洲视觉展,2009 年。

如需了解更多信息,Dwyer 的论文详细描述了整个算法。