SVG 및 d3.js.SVG 마커가 D3 힘 레이아웃 링크로 사용되는 d3.svg 대각선 곡선에서 올바르게 방향이 지정되지 않습니다.
D3 힘 레이아웃으로 그래프를 그리는 동안 간단한 대각선 생성기를 사용하고 마커 - 엔드를 사용하여 화살표 헤드를 그립니다.
대각선 생성기 대신 호를 사용하면 화살표 머리가 잘 보입니다. 그러나 코드에서와 같이 대각선 생성기를 사용하여 아래 적절한 마커를 생성하지 않습니다 또한 다음
var vis = this.vis = d3.select(el).append("svg:svg")
.attr("width", w)
.attr("height", h);
var force = d3.layout.force()
.gravity(0.03)
.distance(120)
.charge(-800)
.size([w, h]);
var linkDiag = d3.svg.diagonal()
.projection(function(d)
{
return [d.x, d.y];
});
vis.append("svg:defs")
.selectAll("marker")
.data(["normal", "special", "resolved"])
.enter()
.append("svg:marker")
.attr("id", String)
.attr("viewBox", "0 -5 10 10")
.attr("refX", 15)
.attr("refY", -1.5)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M 0,-5 L 10,0 L0,5");
...과 :
force.on("tick", function() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; })
.attr("d", linkDiag)
.attr("marker-end", function(d) { return "url(#special)"; });
});
마커는 모든 꼭지점에서 지향하지 않습니다.
도움이 될 것입니다.
이 문제를 해결할 수 있으십니까? 내 경우, 내 서클 노드가 크고 마커가 렌더링되었지만 항상 서클 뒤에 렌더링되었음을 알았습니다. 나는 여전히 문제를 가지고 있지만 마커에 대한 적절한 refX, refY 등의 값을 결정합니다./ – dchang
이것에 대한 해결책이 있는지 궁금합니다. –