我已经使用mxGraph创建了一个自定义编辑器。在我的编辑器中,用户应该可以创建acyclic graph
。当用户will try to make a cycle in the graph
时,将出现一个弹出窗口,通知用户在图形中发生cycles are not permitted
并回滚。
mxGraph
对象具有属性multigraph (boolean)
,该属性指定图形是否应允许同一对顶点之间存在多个连接,并且行为与我上面要描述的相似。
我已经在mxGraph对象的代码中搜索了任何类似的属性,声明该图应该是非循环的,但到目前为止还没有发现任何东西。我也许可以实现自己的自定义逻辑以使图成为非循环图,但是每次连接一对顶点时,我都应该遍历目标顶点的所属树以检查是否会创建一个循环,这将是非常昂贵的/因为该图可能包含成千上万的顶点和边,所以非常耗时,因此我正在寻找一种简单的方法(如果有的话)来实现它。
示例-非循环图(确定)
示例-循环图(不正常-不应允许)
非常感谢您的帮助。