2012-07-13 166 views
4

我在努力实现什么?D3.js强制布局:如何隔离节点组?

我想有一组树节点,树状结构中的每个根或者是主根,或者是来自另一棵树的树叶的后代。

生成你在下面看到的内容很容易,但我真正想看到的是每个根周围的完整圆圈。但是,由于节点彼此排斥,因此在每个群集之间存在以下间隙。 我假设该解决方案涉及忽略由来自不同根的叶子之间的电荷引起的斥力

enter image description here

我的想法

  • 设置某种围绕排斥在超出半径四面八方其他节点的每一根半径,使叶子是它
  • 使用内循环linkDistances和linkStrengths以某种方式排列群集,使它们不会显着交互

这可能吗?

除了我模糊的想法,我真的不知道如何做到这一点!

从阅读D3文档,我发现,与动态linkDistance和linkStrength方法,点充电操作似乎是普遍的:

"All nodes are assumed to be infinitesimal points with equal charge and mass." 

如果这种说法是真实的,你们可以一个请指导我在正确的方向?

回答

0

我想开始的答案可能是在这个计算器问题,Space out nodes evenly around root node in D3 force layout

知道,可能使每个节点的费用依赖于相同的一些属性。 喜欢的东西

.charge(function(d) { console.log(d); //you'll see this brings up the nodes 
    if (d.something == onething) { 
     return -1300;} 
    else { 
     return -100; } 
    }) 

由于尝试它链接到的回答中提到,你几乎可以肯定会与“摩擦”,并尝试“linkDistance。”不要害怕反复试验 - 我至少在几个月内一直在间歇地处理这类问题,而且还没有找到“一般”解决方案。

相关问题