d3.js径向时钟,添加点而不是时钟指针

时间:2016-12-07 06:57:50

标签: javascript d3.js svg

我正在尝试制作一个径向时钟,但我需要在每个路径末尾都有点,而不是时钟臂(蓝色)。谢谢你的帮助!

修改:像这样:https://puu.sh/sH03Y/c59281fb5e.png

画线部分:

var clockLine = linesLayer.selectAll('.clock-line')
.data(fields);

 clockLine.enter().append('line')
.attr('class', function (d) { return 'line clock-line ' + d.id; })
.attr('x1', 0).attr('y1', 0);

完全小提琴:http://jsfiddle.net/zh3owyr3/

1 个答案:

答案 0 :(得分:3)

而不是<line>,请附加<circle>

var clockCircle = linesLayer.selectAll('.clock-line')
    .data(fields);

clockCircle.enter().append('circle')
    .attr('class', function(d) {
        return 'circle clock-circle ' + d.id;
    })
    .attr("r", 6)
    .attr("fill", "teal");

并改变其在tick功能中的位置:

clockCircle.attr('cx', function(d) {
    return d.index * radius * Math.cos(d.value * 2 * Math.PI - Math.PI / 2);
})
.attr('cy', function(d) {
    return d.index * radius * Math.sin(d.value * 2 * Math.PI - Math.PI / 2);
});

这是您更新的小提琴:http://jsfiddle.net/mjru5ta8/

PS:您必须更改自己的视图框,以避免裁剪秒的圆圈。