Я хочу разместить круги SVG вокруг некоторых кругов SVG. Я нахожу нужные круги, используя d3.selectAll().filter()
. Это почти работает - создается круг. Но я не могу понять, как установить центр нового круга из центра старого круга, поэтому новый круг создается на 0,0. Ничего, что я пробовал, сработало.Установить атрибут круга из атрибута другого круга, используя d3.select?
// first I find the circles I want
foundNodeCircles = d3.selectAll(".node").filter(function(d,i){return d.label == nodeRE;});
// Then I create a new, larger circle for each circle that I found:
svg.selectAll(".nodeHighlightRing")
.data(foundNodeCircles) // make one ring per node circle
.enter().append("circle") // make the ring
.attr("class", "nodeHighlightRing") // specify its qualities
.attr("cx", function(d) { return d.cx;}) // BROKEN: set center to center of old circle
.attr("cy", function(d) { return d.cy;}) // BROKEN: set center to center of old circle
.attr("r", 10)
.style("opacity", 0)
.style("stroke", "green")
.style("stroke-width", "1.5")
.style("stroke-opacity", "1");
В в дополнение к d.cx
, я попытался this.cx
, d.attr["cx"]
, this.attr["cx"]
, d3.select(this).attr("cx")
, d3.select(d).attr("cx")
, и несколько других вещей, которые, казалось, менее вероятно, будет работать. Никто не добился успеха.
Я думал, что вопрос this или this one поможет, но я, очевидно, делаю что-то другое.
Можем ли мы увидеть, что вы получаете в найденномNodeCircles, или сделать скрипку, мы могли бы что-то сделать. –
Спасибо @ saikiran.vsk. jshanley правильно догадался. Мне нужно больше узнать о мире скрипки. – Mars