GEF/draw2d:有向图节点乱序
GEF/draw2d: DirectedGraph nodes out of order
我有一个程序,其中有一棵树。我将节点及其边放在 NodeList 和 EdgeList 中。然后将列表放入 DirectedGraph 中,然后我 运行 通过 DirectedGraphLayout.visit().
我现在将节点和边放置在屏幕上。该图几乎是完美的,但存在一些节点乱序的不一致之处。
第一个如下图所示。如您所见,它放置了 parent1 中的几个 children,然后放置了 parent2 中的一些节点。然后出于某种原因,我无法弄清楚它将 parent1 的最后一个 child 放在 parent2 的 children 的右边。
下一个问题是 parent 的 children 出问题了。当 children 应按顺序放置:1 2 3 4 时,它们会以不同的顺序放置,例如:2 3 1 4。
我尝试将节点添加到 NodeList 是不同的顺序,尝试 post 和预排序递归来解析我的树。我最终得到了完全相同的定位。
我不知道如何解决这个问题。任何有关 DirectedGraph 的工作原理以及它为什么这样放置节点的提示都值得赞赏。
来自 DirectedGraphLayout 文档,
[the layout algorithm will] assign x coordinates such that the graph is easily readable. The exact behavior is undefined
再往下
This class is not guaranteed to produce the same results for each invocation.
所以我想没有办法 "fix" 因为行为未定义。
我有一个程序,其中有一棵树。我将节点及其边放在 NodeList 和 EdgeList 中。然后将列表放入 DirectedGraph 中,然后我 运行 通过 DirectedGraphLayout.visit().
我现在将节点和边放置在屏幕上。该图几乎是完美的,但存在一些节点乱序的不一致之处。
第一个如下图所示。如您所见,它放置了 parent1 中的几个 children,然后放置了 parent2 中的一些节点。然后出于某种原因,我无法弄清楚它将 parent1 的最后一个 child 放在 parent2 的 children 的右边。
下一个问题是 parent 的 children 出问题了。当 children 应按顺序放置:1 2 3 4 时,它们会以不同的顺序放置,例如:2 3 1 4。
我尝试将节点添加到 NodeList 是不同的顺序,尝试 post 和预排序递归来解析我的树。我最终得到了完全相同的定位。
我不知道如何解决这个问题。任何有关 DirectedGraph 的工作原理以及它为什么这样放置节点的提示都值得赞赏。
来自 DirectedGraphLayout 文档,
[the layout algorithm will] assign x coordinates such that the graph is easily readable. The exact behavior is undefined
再往下
This class is not guaranteed to produce the same results for each invocation.
所以我想没有办法 "fix" 因为行为未定义。