d3.js使用极坐标绘制元素

时间:2013-02-09 19:33:42

标签: javascript d3.js

我是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方法是什么?

1 个答案:

答案 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)); });