我正在尝试使用d3.js和d3.dag构建类图模型查看器
此查看器最关键的部分是它应该能够最佳地定位节点,这样我们就不会出现链接交叉(只要有可能),并且还应该能够清楚地看到什么与什么连接了
我们知道:
我们想要:
查看连接结束(可以通过手动移动节点来实现)。
最小化链接交叉(如果可能)
我需要的是某种理论。
是否存在可以解决上述问题的已知算法(语言无关紧要,我只需要理论参考即可)
在下面放置示例
示例1。
当前
可实现
完美
示例2。
当前
可实现
完美
示例3。
当前
可实现且完美
示例4。
当前
可实现
完美
示例5。
当前
可实现
完美
示例6。
当前
完美
更新
在这种情况下(由于d3-dag),传统(节点到节点链接)的交叉已被最小化。问题是我们没有唯一的节点到节点关系,我们也有节点行对行关系,在这种情况下,d3-dag失败
答案 0 :(得分:0)
我使用了d3-dag to topologically sort nodes,然后将它们重新垂直放置,如果是奇数,则顶部放置,如果是偶数,则底部放置。
尽管这不是我要找的算法,但它极大地改善了组件的视觉外观,并使可读性更强