我是d3.js的新手,不知道要使用哪种d3功能。
我需要围绕原点(圆圈)同心放置一组元素。
svg.selectAll('circle').each(function() {
d3.select(this)
.attr('cx', r * Math.cos(theta))
.attr('cy', r * Math.sin(theta));
theta += thetaInc;
});
所以不要像上面的代码那样单调乏味,这样做的d3方法是什么?
答案 0 :(得分:8)
执行此操作的d3方法是传入数据并根据数据的索引计算位置,例如
var theta = 2 * Math.PI / array.length;
svg.selectAll('circle').data(array).enter()
.append("circle")
.attr('cx', function(d, i) { return(r * Math.cos(i * theta)); })
.attr('cy', function(d, i) { return(r * Math.sin(i * theta)); });