0
我试图在强制布局下创建卫星节点到主图节点。每个节点应该有一个或多个相应的卫星节点连接到它。如何在D3.js强制布局图中创建卫星节点到主节点
这里是一个的jsfiddle表示意图(本实施例中具有固定的位置,并且没有力统治卫星节点
http://jsfiddle.net/guidoextras/zLt2sne3/1/
node.append("circle")
.attr("class", "planet_node")
.attr("r", function(d) { return d.weight * 2 + 12; })
.style("fill", function(d) { return color(1/d.rating); });
node.append("circle")
.attr("r", 5)
.attr("class", "satellite_node")
.attr("cx", function(d) { return d.weight * 2 + 25; })
.attr("cy", 0)
.style("stroke-width", "1")
.style("stroke", "black")
.style("fill", "cyan");
卫星节点应:
- 是通过一个固定的较短距离的链路连接到主节点上,链路的距离应该是固定的
- 受到来自其主要节点(行星)的力并且不会受到其他人的影响(如果链路的距离总是固定,这应该不是问题)
- 当同一行星节点存在更多卫星节点时,预计他们可以相互排斥,这样他们就不会在同一个位置出现问题。
我在想,要实现这一点,我必须:
- 考虑所有卫星节点在同一数据正常节点设置
- 执行卫星节点和行星节点之间的链接的linkdistance短(或固定)< - 不知道如何可以在特定的链接/节点
那么你的问题是什么?你有没有试过简单地将这些“卫星”节点添加到与其父节点连接的力布局? –
我做到了,但让他们受到相同的力量规则的影响。我意识到我可以为武力增加一项功能,解决问题。 :.linkDistance(function(d){return(d.type ==“SATELLITE”?“10”:120)}) – gextra