Javascript D3梯度起点

Javascript D3梯度起点,javascript,d3.js,svg,Javascript,D3.js,Svg,我有一张圆形图表,但我正在努力使梯度从每一段的中心开始,填充到边缘。有人能帮我吗 var gradient = vis.append("defs") .append("linearGradient") .attr("id", "gradient") .attr("x1", "0%") .attr("y1", "0%") .attr("x2", "100%") .attr("y2", "100%") .attr("spreadMethod", "pad"); grad

我有一张圆形图表,但我正在努力使梯度从每一段的中心开始,填充到边缘。有人能帮我吗

var gradient = vis.append("defs")
  .append("linearGradient")
  .attr("id", "gradient")
  .attr("x1", "0%")
  .attr("y1", "0%")
  .attr("x2", "100%")
  .attr("y2", "100%")
  .attr("spreadMethod", "pad");

gradient.append("stop")
  .attr("offset", "0%")
  .attr("stop-color", "#61B5C3")
  .attr("stop-opacity", 1);

gradient.append("stop")
  .attr("offset", "100%")
  .attr("stop-color", "#5393AC")
  .attr("stop-opacity", 1);

好的,我用径向梯度算出了这个

var radialGradient = vis.append("defs")
    .append("radialGradient")
    .attr("id", "radialGradient")
    .attr("cx", "0%")
    .attr("cy", "0%")
    .attr("r", "50%")
    .attr("fx", "0%")
    .attr("fy", "0%")
    .attr("spreadMethod", "pad")
    .attr("gradientUnits", "userSpaceOnUse");

下面是一个工作示例:

您不想要径向梯度吗?我也用径向梯度进行了测试,我想问题在于cx和cy坐标都需要根据线段的位置进行动态调整。所以我想这里需要一个工厂函数。你可以接受你自己的答案,所以允许它(几小时后)。