我在 JointJS 中实现了一个流程图,用户可以在其中删除元素以及添加新元素,并以各种顺序重新链接事物。每次删除、添加、取消链接或重新链接某些内容时,该图正在使用 Joint.layout.DirectedGraph 库和 Dagre 的自动布局功能来重新组织图。出现了一个奇怪的问题,我还不确定如何处理它。
假设我有一个“分叉”进程,它有两个输出端口,每侧一个,顶部有一个输入端口。根据数组中元素的顺序,自动布局有时可以将左侧端口的子元素放置在右侧端口的子元素的右侧,因此生成的链接是交叉的。
是否有一些直接的方法来影响布局中的排名顺序?我希望当事情发生变化时我可以对数组中的元素重新排序,这样从 Dagre 的角度来看它们更容易处理,但我不确定排序在实践中的实际效果。更好的是一些类似于 az index 的属性,但对于我可以设置的从左到右的偏差,Dagre 会尊重,但我不相信这样的事情隐藏在代码中。
有没有人有一些想法或建议我可以如何清理布局以消除此类事件?
提前谢谢了!