У меня есть график, ориентированный на силу, со ссылками между узлами. Теперь некоторые пары узлов имеют несколько ссылок, идущих друг к другу. Я нашел этот пример: Drawing multiple edges between two nodes with d3.Рисование нескольких связей между фиксированными узлами
Это отлично работало, подумал я. Но если у вас есть фиксированные узлы и перетаскивание, пути заканчиваются перекрытием друг друга. Я собрал отредактированную версию этого примера:
Нажмите кнопку, чтобы исправить узлы и переместить их, чтобы увидеть, что я имею в виду.
Код для разработки количество дуги:
//sort links by source, then target
links.sort(function(a,b) {
if (a.source > b.source) {return 1;}
else if (a.source < b.source) {return -1;}
else {
if (a.target > b.target) {return 1;}
if (a.target < b.target) {return -1;}
else {return 0;}
}
});
//any links with duplicate source and target get an incremented 'linknum'
for (var i=0; i<links.length; i++) {
if (i != 0 &&
links[i].source == links[i-1].source &&
links[i].target == links[i-1].target) {
links[i].linknum = links[i-1].linknum + 1;
}
else {links[i].linknum = 1;};
};
Можно ли придумать другой способ сделать это или фиксируя таким образом, может быть? Я мог бы иметь 3, возможно, 4 связи между двумя узлами.
Идеальное решение, спасибо – thatOneGuy