我想用力()和碰撞沿着一个圆圈散布带有内容的方块,所以这些方块不会相互重叠和主圆。任何想法如何做到这一点?我应该使用链接来做到这一点吗?这是一个小提琴http://jsfiddle.net/benderlio/usbq839m/3/ 有时它可以很好地传播方块,但大多数时候方块会像img一样移动。
var force = d3.forceSimulation(nodes)
.force("charge", d3.forceManyBody(1130))
// .force('link', d3.forceLink().links(links))
.on("tick", function () {
var k = this.alpha(),
kg = k * .02,
spaceAround = 0.04;
//console.log('', nodes);
nodes.forEach(function (a, i) {
...
});
svg.selectAll("rect")
.style("fill", function (d) {
return "#ccc"
})
.attr("x", function (d) {
return d.x - d.width / 2;
})
.attr("y", function (d) {
return d.y - d.height / 2;
});
svg.selectAll("line")
.attr("x2", function (d) {
return d.x;
})
.attr("y2", function (d) {
return d.y;
})
svg.selectAll("circle.end")
.attr("cx", function (d) {
return d.x;
})
.attr("cy", function (d) {
return d.y;
})
});
谢谢。
升级版: