2014-06-20 84 views
1

我正在研究一个d3力布局,该布局需要将节点放置在一个中心节点上,根据该节点放置所有其他节点放射状放置的节点。节点彼此相连就像一个正常的力量布局与适当的来源和目标。中心节点决定所有其他节点的位置,所以本质上它是所有节点的来源。现在,我所能做的就是使用链接距离属性以一个节点作为参考以线性方式放置它们,但我需要以放射状方式。我本来可以展示一张图片,但显然我的声望太低,我不被允许发布一张图片。有人可以帮我解决这个问题吗?D3径向力布局

+0

如果数据是[用单个根节点分层](https://github.com/mbostock/d3/wiki/Hierarchy-Layout#user-content-children),则将根节点放在中心位置,如看到[这里](http://stackoverflow.com/questions/21843206/d3-force-layout-fix-root-node-at-the-center#21843473)。 – FernOfTheAndes

+0

数据不是分层的 – user3700582

+0

你见过[这个例子](http://bl.ocks.org/vlandham/5087480)?这听起来好像你不需要强制布局,如果你想要的是将节点安排在一个圆圈内。 –

回答

2

看看这个例子:

link to jsfiddle

enter image description here

中心(根)节点具有特殊处理,使得它永远留在图的中心。初始化时,中心节点的属性fixed设置为true,以便d3强制布局模拟不会移动它。此外,它被放置在包含布局的矩形的中心:

root.fixed = true; 
root.x = width/2; 
root.y = height/2; 

希望这会有所帮助。