Javascript d3js强制布局带箭头的多个圆弧

Javascript d3js强制布局带箭头的多个圆弧,javascript,d3.js,svg,force-layout,Javascript,D3.js,Svg,Force Layout,我的问题基于以下例子: 如果我用相同的源和目标创建两个链接,比如 {source: "Microsoft", target: "HTC", type: "licensing"}, {source: "Microsoft", target: "HTC", type: "suit"}, 然后这两个链接将位于彼此的顶部,并且只有一个链接可见。我如何重写代码,以便在这种情况下,两个链接将形成一个循环,就像两个反向源和目标链接一样 {source: "Microsoft", target: "Moto

我的问题基于以下例子:

如果我用相同的源和目标创建两个链接,比如

{source: "Microsoft", target: "HTC", type: "licensing"},
{source: "Microsoft", target: "HTC", type: "suit"},
然后这两个链接将位于彼此的顶部,并且只有一个链接可见。我如何重写代码,以便在这种情况下,两个链接将形成一个循环,就像两个反向源和目标链接一样

{source: "Microsoft", target: "Motorola", type: "suit"},
{source: "Motorola", target: "Microsoft", type: "suit"},

好的,我自己找到了解决这个问题的办法。在

function linkArc(d) {
  var dx = d.target.x - d.source.x,
      dy = d.target.y - d.source.y,
      dr = Math.sqrt(dx * dx + dy * dy);
  return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
}
如果将0.0,1部分更改为0.0,0,则会更改弧的手性,因此需要使用if语句来区分两个链路具有相同源和目标的情况。

可能重复的