Javascript 将d3标签放置在弧的末端
给定以下使用D3中的圆弧构造的速度刻度盘:Javascript 将d3标签放置在弧的末端,javascript,d3.js,Javascript,D3.js,给定以下使用D3中的圆弧构造的速度刻度盘: segmentArc = d3.svg.arc().outerRadius(radius - chartInset).innerRadius(radius - chartInset - barWidth).startAngle(arcStartRad + startPadRad).endAngle(arcEndRad - endPadRad); 如何移动每个线段中的标签,使其在与中心相对的每个线段末端右对齐 当前添加的标签如下所示:
segmentArc = d3.svg.arc().outerRadius(radius - chartInset).innerRadius(radius - chartInset - barWidth).startAngle(arcStartRad + startPadRad).endAngle(arcEndRad - endPadRad);
如何移动每个线段中的标签,使其在与中心相对的每个线段末端右对齐
当前添加的标签如下所示:
chart.append('text')
.attr('transform', () => {
var x = Math.round(segmentArc.centroid()[0]);
var y = Math.round(segmentArc.centroid()[1]);
return 'translate(' + x + ',' + y + ')';
})
.style("text-anchor", "middle")
.text(sectionLabel);
我通过复制每个弧段来解决这个问题,给它一个透明的填充,使它的长度正好是原来的两倍。从这里开始,就可以简单地计算出透明圆弧的质心