如何在mxgraph(非循环图)上禁止顶点之间的循环边缘连接

时间:2019-05-21 13:01:41

标签: javascript graph directed-acyclic-graphs mxgraph jgraph

我已经使用mxGraph创建了一个自定义编辑器。在我的编辑器中,用户应该可以创建acyclic graph。当用户will try to make a cycle in the graph时,将出现一个弹出窗口,通知用户在图形中发生cycles are not permitted并回滚。

mxGraph对象具有属性multigraph (boolean),该属性指定图形是否应允许同一对顶点之间存在多个连接,并且行为与我上面要描述的相似。

我已经在mxGraph对象的代码中搜索了任何类似的属性,声明该图应该是非循环的,但到目前为止还没有发现任何东西。我也许可以实现自己的自定义逻辑以使图成为非循环图,但是每次连接一对顶点时,我都应该遍历目标顶点的所属树以检查是否会创建一个循环,这将是非常昂贵的/因为该图可能包含成千上万的顶点和边,所以非常耗时,因此我正在寻找一种简单的方法(如果有的话)来实现它。

示例-非循环图(确定)

enter image description here

示例-循环图(不正常-不应允许)

enter image description here

非常感谢您的帮助。

0 个答案:

没有答案