0

d3.forceManyBody() 表示它只在每个节点上运行。我希望能够在节点子集上进行操作。具体来说,我想要两种可能性:

  • 将标准多体力(吸引力或排斥力)平等地应用于此节点子集中的所有节点
  • 给定两个节点子集 A 和 B,A 中的所有节点都(吸引/排斥)B 中的每个节点,对任何其他节点没有影响

我怎样才能做到这一点?

想到的一个选择是弄清楚如何使用 d3.forceLink() 来模拟 d3.forceManyBody() 的计算,然后在每个节点和每个其他节点之间创建链接,该链接意味着具有吸引力或排斥力施加的力。如果可以使两者起作用,从数学的角度来看,它可能会起作用,除了性能问题。

想到的另一个选择是将 d3.forceManyBody() 克隆到 d3.forceSelectiveManyBody() 之类的东西中,并对其进行调整,以便在计算过程中为每对节点调用一次 force.strength() 访问器函数。

还有另一个我没有想到的更简单的高性能选项吗?

4

0 回答 0