是否可以根據節點大小動態定位和縮放圖像?D3.js動態縮放並在節點中定位圖像
我與具有動態調整大小的字體爲每個節點圈節點的工作:
node.append("text")
.attr("dy", ".2em")
.style("text-anchor", "middle")
.text(function(d) { return d.className; })
.style("font-size", "1px")
.each(getSize)
.style("font-size", function(d) { return d.scale + "px"; });
function getSize(d) {
var bbox = this.getBBox(),
cbbox = this.parentNode.getBBox(),
scale = Math.min(cbbox.x/bbox.x, cbbox.y/bbox.y);
d.scale = scale;
}
這是同樣的效果acheivable與PNG圖像?我們的目標是讓每個節點都擁有一個自動縮放並定位在我們當前文本上方的獨特圖像。
每張圖片大小相同,但內容不同。示例175px X 50px,並且可以向下擴展或達到適當的節點大小。像:
但每個圖像將是唯一的節點就在目前,我一直在努力。
node.append("image")
.attr("xlink:href", "http://www.wepushbuttons.com.au/wp-content/uploads/2011/12/gimp-logo.png")
.attr("x", -8)
.attr("y", -100)
.attr("width", 16)
.attr("height", 16);
我當前的代碼(節點/文)動態調整大小以上圖像代碼不。我在想,有一種方法可以將IMAGE .attr("dy", ".1em")
編碼在文本的正上方,並用this.getBBox()
對其進行編碼。將寬度:175和高度:50縮放到適當的節點大小。
- 這可能嗎?
我無法讓它與我的任何代碼一起工作。它可能是我,但這隻允許每個SVG 1個圖像。如果我錯了,我需要1個SVG中的每個節點1個圖像。 [經測試的代碼](http://i.stack.imgur.com/6efCD.png「屏幕截圖」)不縮放,不在每個節點...我會更新我的請求/問題... – Understood
創建一個唯一的ID對於你想使用的每個圖像 - 請參閱圖案ID =「image1」,你可以有image2,image3,cute-cat ..無論你喜歡什麼。然後,將URL(#{id name go here})設置爲填充。 – minikomi
你是我的英雄!!!! – mbh86