javascript - 如何根据圆圈大小调整箭头?

标签 javascript svg d3.js

我用 d3js 创建了一个网络图。我有不同半径的圆。圆圈之间的每条线都有一个指向其源头的箭头。如何根据圆半径正确调整箭头标记?

这是 jsfiddle 中该代码的链接 http://jsfiddle.net/2NJ25/10/

这就是我将箭头添加到直线的方式

svg.append("defs").append("marker")
        .attr("id", "arrow")
        .attr("refX", 10)
        .attr("refY", 2.2)
        .attr("markerWidth", 10)
        .attr("markerHeight", 10)
        .attr("orient", "auto")
        .append("path")
        .attr("d", "M0,0 V4 L5,2 Z10");

最佳答案

您可以调整链接。这将调整附加到它的箭头的大小。

var links = svg.append("g").selectAll("line.link")
    .data(force.links())
    .enter().append("line")
    .attr("class", "link")
    .style("stroke-width", function(d) {
        return (d.target.cRadius) / 5; })
    .attr("marker-end", "url(#arrow)");

我注意到您的标记路径有误。这是我使用的:

svg.append("defs").append("marker")
    .attr("id", "arrow")
    .attr("viewBox", "0 -5 10 10")
    .attr("refX", 21)
    .attr("refY", 0)
    .attr("markerWidth", 5)
    .attr("markerHeight", 5)
    .attr("orient", "auto")
.append("path")
    .attr("d", "M0,-5L10,0L0,5");

完整代码在这里:

http://vida.io/documents/4FSGQ6Pn6dsEHuYaM

关于javascript - 如何根据圆圈大小调整箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18933437/

相关文章:

javascript - 使用js对API调用响应进行排序

javascript - 如何在这个简单的股票图表中正确设置 x 标签的格式?

html - Css 悬停有时不适用于 svg 路径

svg - 在另一个 SVG 元素中响应地居中 SVG 元素?

json - 如何在 d3.js 可重用图表模式中使用 json 对象

javascript - Onsen UI : button, 底部对齐

javascript - 用javascript转义Mysql特殊字符串

javascript - 设置 SVG 元素的宽度和高度 - d3.js

javascript - 使用jquery制作动画涟漪

javascript - d3.js 将底部轴线延伸至原点