如何在dagre-d3中保持相同级别的节点

问题描述

我使用 dagreD3 创建了一个简单的流程图,请查看示例 here

我的节点集很少

  graph.setNode('a',{label: 'a',height: 20,width: 40})
  graph.setNode('b',{label: 'b',width: 40})
  graph.setNode('c',{label: 'c',width: 40})
  graph.setNode('d',{label: 'd',width: 40})
  graph.setNode('e',{label: 'e',width: 40})
  graph.setNode('f',{label: 'f',width: 40})
  graph.setNode('main',{label: 'Main',heihgt: 100})

有这样的边缘

  graph.setEdge('a','c')
  graph.setEdge('b','c')
  graph.setEdge('c','main')
  graph.setEdge('d','e')
  graph.setEdge('e','main')
  graph.setEdge('f','main')
  // graph.setEdge('main','e')

这里的问题是,有最后一个graph.setEdge('main','e'),因为 ma​​in 是 e 的父节点,e 节点位于 ma​​in 节点。

我期望的是当我尝试从 main to e 设置边缘时,它应该保持相同的水平并从 main to e 画一条线。我只是想在流程图的最后一级维护 ma​​in。有没有办法将 ma​​in 保持在同一级别,并且所有剩余的节点都应该位于 ma​​in 之上?

在上面的链接中,请取消注释这行 graph.setEdge('main','e') 并查看图表如何变化。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)