我今天也遇到了同样的问题。我想要一个链接上有两个方向不同的箭头。解决方法很简单,只要改变形状的路径即可。
所以首先创建两个箭头定义:
vis.append("defs").selectAll("marker")
.data(["arrow"])
.enter().append("marker")
.attr("id", "markerEnd")
.attr("viewBox", "0 -5 10 10")
.attr("refX", 19)
.attr("refY", -0,7)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr('markerUnits', "userSpaceOnUse")
.attr("orient", "auto")
.append("path")
.attr("d", "M0,-5L10,0L0,5");
vis.append("defs").selectAll("marker")
.data(["arrow"])
.enter().append("marker")
.attr("id", "markerStart")
.attr("viewBox", "0 -5 10 10")
.attr("refX", -12)
.attr("refY", -0,7)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr('markerUnits', "userSpaceOnUse")
.attr("orient", "auto")
.append("path")
.attr("d", "M0,0L10,-5L10,5Z");
如您所见,一个称为“markerStart”,一个称为“markerEnd”,它们现在方向相反。
那么路径如下所示:
hlink.enter().append("path")
.attr("class", "hlink")
.attr("marker-start", "url(#markerStart)")
.attr("marker-end", "url(#markerEnd)");