0

我正在尝试在一个圆圈内绘制多个“十字”符号以用于可视化。我想在“g”标签中绘制十字,然后应用剪切路径。

是否可以将剪辑路径与 d3.svg.symbol 一起使用?

在下面的示例中,svg 圆圈被剪辑路径正确遮盖;但是十字架(代码的最后一部分)不是。

我做错了什么还是这不是一个功能?

var svg = d3.select("#maskingExample")
    .append("svg:svg")
    .attr("width", 500)
    .attr("height", 200);

svg.append("svg:clipPath")
    .attr("id", "clipper")
    .append("svg:rect")
    .style("stroke", "gray")
    .style("fill", "black")
    .attr("x", 50)
    .attr("y", 25)
    .attr("width", 300)
    .attr("height", 45);

svg.append("g").append("svg:circle")
    .style("stroke", "gray")
    .style("fill", "blue")
    .attr("cx", 175)
    .attr("cy", 55)
    .attr("r", 50)
    .attr("clip-path", "url(#clipper)");

svg.append("g").append("path")
    .attr("d", d3.svg.symbol()
    .size( function(d) { return 3000; })
    .type( function(d) { return d3.svg.symbolTypes[1]; }))
    .attr("transform", "translate(150, 50)")
    .attr("clip-path", "url(#clipper")
    .style("fill", "black");
4

1 回答 1

6

你错过了一个近亲。代替

.attr("clip-path", "url(#clipper")

它应该读

.attr("clip-path", "url(#clipper)")
于 2012-06-21T23:25:52.260 回答