2012-07-13 98 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。」不要害怕反覆試驗 - 我至少在幾個月內一直在間歇地處理這類問題,而且還沒有找到「一般」解決方案。

相關問題