了解Javascript D3可视化四叉树

Understanding Javascript D3 visualization quadtree

本文关键字:四叉树 可视化 D3 Javascript 了解      更新时间:2023-09-26

我正在尝试使用和理解D3可视化库(http://mbostock.github.com/d3/),我正在查看他们的力导向代码,似乎他们正在使用四叉树来计算粒子上的力。代码是

      var k = kc * quad.count * dn * dn;
      node.px -= dx * k;
      node.py -= dy * k;

似乎他们四分之一。Count是四叉树节点中粒子的个数。但是在https://github.com/mbostock/d3/blob/master/d3.geom.js#L696中查看他们的四叉树代码,我找不到任何关于count的参考,以及它是如何计算的。我问这个问题是因为我想修改一些东西,比如改变每个节点的"权重"或"电荷"

看看d3_layout_forceAccumulate方法:

https://github.com/mbostock/d3/blob/master/src/layout/force.js l294 - 324

四叉树本身不计算其粒子的电荷中心(因为四叉树只知道粒子的位置,而不对它们的电荷做任何假设)。四叉树生成后,力布局递归计算每个象限的电荷中心。