【发布时间】:2017-02-23 01:29:00
【问题描述】:
我已尝试更改此 stackoverflow 主题 d3: svg image in zoom circle packing 提供的代码
我尝试添加适合 3 级圆圈的圆形图像,而不是提供的图像。
但图像直径似乎总是比 cricle 小一倍。 为了说明,这里是提琴https://jsfiddle.net/5qmmL8jo/
我知道解决方案在 zoomTo 函数的底部某处,但我不明白如何更改它。你能帮忙吗?
function zoomTo(v) {
var k = diameter / v[2];
view = v;
node.attr("transform", function(d) {
return "translate(" + (d.x - v[0]) * k + "," + (d.y - v[1]) * k + ")";
});
circle.attr("r", function(d) {
return d.r * k;
});
image
.attr("transform", function(d) {
console.log(d.r);
return "translate(" + (((d.x - v[0]) * (k)) - ((d.r / 2) * k)) + "," + (((d.y - v[1]) * (k)) - ((d.r / 2) * k)) + ")";
})
.attr("width", function(d) {
return d.r * k;
})
.attr("height", function(d) {
return d.r * k;
})
}
【问题讨论】:
标签: javascript d3.js svg