如何模拟仅对节点子集进行操作的d3.forceManyBody()?

时间:2016-11-15 13:57:39

标签: javascript d3.js d3-force-directed

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

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

我该如何解决这个问题?

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

另一个想法是将d3.forceManyBody()克隆到像d3.forceSelectiveManyBody()这样的东西,并调整它以便为每对节点调用一次force.strength()访问函数作为其计算的一部分。

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

0 个答案:

没有答案