For the user to quickly identify the source and destination of a link, add arrow(s ?) from the source to the destination.
The easiest way would be to create an arrow right in the middle (the other option, more complex, would be to have two arrows at 1/4 and 3/4 of the link)
What's difficult is that links are not straights when there are multiple links between two nodes.
A "fake" invisible (with a lower "z" position on the canvas, or a null width) link must be created: it terminates with an arrow at a position which is the middle of the real link (the middle being the middle position of the straight line between two nodes, with an offset that depends on the number of links)
For the user to quickly identify the source and destination of a link, add arrow(s ?) from the source to the destination. The easiest way would be to create an arrow right in the middle (the other option, more complex, would be to have two arrows at 1/4 and 3/4 of the link)
What's difficult is that links are not straights when there are multiple links between two nodes. A "fake" invisible (with a lower "z" position on the canvas, or a null width) link must be created: it terminates with an arrow at a position which is the middle of the real link (the middle being the middle position of the straight line between two nodes, with an offset that depends on the number of links)