在D3中填充有背景图像的圆圈

时间:2016-08-27 10:51:35

标签: javascript jquery d3.js svg jquery-svg

我想使用D3填充具有背景图像的圆圈。我尝试了不同的方法,但不使用它们会产生正确的结果。我正在通过这个问题上传我的要求

enter image description here

我有那个透明的图像,我试图将该图像设置为该圆圈的背景,这将正常工作,但我不知道如何填充该圆圈

我的代码

    var def = svg.append("defs")
           .append("pattern")
           .attr("id", "image")
           .attr("x", "0%")
                       .attr("y", "0%")
           .attr("height", "100%")
                       .attr("width", "100%")
           .attr("viewBox", "0 0 512 512")
           .append("image")
           .attr("x", "0%")
                       .attr("y", "0%")
           .attr("height", "512")
                       .attr("width", "512")
 .attr("xlink:href", "http://www.e-pint.com/epint.jpg");

 var grad = svg.append("defs").append("linearGradient").attr("id", "grad")
.attr("x1", "0%").attr("x2", "0%").attr("y1", "100%").attr("y2", "0%");
 grad.append("stop").attr("offset", "30%").style("stop-color", "red");
 grad.append("stop").attr("offset", "30%").style("stop-color", "white");

var tmpimgArcRad = inradius;

var arc3 = d3.svg.arc()
    .innerRadius(tmpimgArcRad)
    .outerRadius(0)
    .startAngle(0)
    .endAngle(2*Math.PI);
var background = svg.append("path")
    .attr("d", arc3)
   // .style("fill", "url(#image)")
    .style("fill", "url(#grad)")
    .style("stroke", "black")
    .style("stroke-width", "1");

这里我试图将该图像和linearGradient添加到同一个圆圈中,但这个逻辑不正确

所以请帮我解决任何其他逻辑

jsfiddle(在本例中我使用的是一个临时图像)

code

0 个答案:

没有答案