gpt4 book ai didi

javascript - 在 SVG 路径的中间显示 SVG 图像

转载 作者:行者123 更新时间:2023-11-28 02:28:08 24 4
gpt4 key购买 nike

我有一个具有不同大小节点的力定向图。我想在连接两个节点的每个路径的中间显示一个自定义图标。从 d3 示例中,我找到了在节点内显示图像的方法。然而,当我在路径上尝试相同的技术时,图像没有显示。

var path = svg.append("svg:g").selectAll("path").data(force.links());

var pathEnter = path.enter().append("svg:path");

pathEnter.attr("class", function(d) {
return "link " + d.target.type;
})

pathEnter.append("svg:g").append("image")
.attr("xlink:href","http://127.0.0.1:8000/static/styles/images/add.png")
.attr("x",0).attr("y",0).attr("width",12).attr("height", 12)
.attr("class", "type-icon");

最佳答案

我想在提问之前我需要多一点耐心。我解决这个问题的方法是:

var icon = svg.append("svg:g").selectAll("g")
.data(force.links()).enter().append("svg:g");

icon.append("image").attr("xlink:href","imagePath")
.attr("x", -20)
.attr("y", -2)
.attr("width", 12).attr("height", 12)
.attr("class", "type-icon");

然后在tick函数中:

        icon.attr("transform", function(d) {
return "translate(" +((d.target.x+d.source.x)/2) + "," +
((d.target.y+d.source.y))/2 + ")";
});

获取两个节点之间的中心点。

关于javascript - 在 SVG 路径的中间显示 SVG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com