我很想知道D3图书馆在实现力导向图特性时使用了哪些算法。阅读Kobourov的总结关于力导向图历史的文章让我有些困惑,不知道图书馆中使用了哪种确切的算法或方法(算法/启发式组合)。
D3 API参考 表示使用Barnes-Hut算法来计算作用于物体上的电荷,这是一个O(N*log(N))操作。Kobourov的文章提到Quigley-Eades算法和Hu算法是多级算法,利用了Barnes-Hut。其中一种算法是否以某种方式在D3中被使用?
API维基进一步指出,Verlet积分用于粒子定位。 源代码提到了Gauss-Seidel算法,而胡氏算法和Dwyer的图形布局论文中都提到了它。我猜我正在寻找答案的问题是D3使用了哪个“整合”算法; Kobourov的文章列出了几个,但D3力导向特性似乎不直接符合任何一个算法。