javascript - D3.js 强制链接到节点边界

标签 javascript d3.js nodes

我一直在尝试使用 D3.js 进行试验,虽然这个问题听起来很愚蠢,但我无法使图表中的链接指向节点边界而不是节点中心。

我一直在使用下面的jsfiddle来测试它,但我仍然无法做到......

http://jsfiddle.net/blonkm/zpcJa/40/light/

我想我必须更新 tick() 函数中的某些内容以返回不同的值:

function tick() {
  path.attr("d", function(d) {
    var dx = d.target.x - d.source.x,
        dy = d.target.y - d.source.y,
        dr = 0; // straight lines (0=straight, 1=round)
        // alternatively use dr = Math.sqrt(dx * dx + dy * dy); for similar arcs
    return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
  });

  circle.attr("transform", function(d) {
    return "translate(" + d.x + "," + d.y + ")";
  });

  text.attr("transform", function(d) {
    return "translate(" + d.x + "," + d.y + ")";
  });
}

如果有人能指出正确的方向,我将不胜感激,谢谢!

最佳答案

使链接看起来好像指向边界的技巧是先绘制链接,然后再在其上绘制节点。这样,圆圈将遮挡到中心的线段。

您为此要做的就是重新排序代码,即将 path 元素附加到 circle 之前。

完整演示 here .

关于javascript - D3.js 强制链接到节点边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23721564/

相关文章:

javascript - 尝试使用 Uglify 最小化代码时出现意外 token

javascript - 更新面板和 JavaScript Hack 中的重复按钮

JavaScript:如何在 GridView 中查找 RadioButtonList

javascript - 填充条形图中的顶部

c - 结构体和指针

c - 在C中按字母顺序添加节点

javascript - 使用本地存储在 2 个样式表之间切换(一次切换)

javascript - 如何在 d3.js 中将网格线移动到条形图后面?

javascript - d3.js - 多系列折线图工具提示问题

algorithm - 找到所有边的最小最高成本的算法是什么?