我使用顶点具有显着大小的组件(通过覆盖mxGraphComponent.createComponents
),并使用mxOrganicLayout
或mxFastOrganicLayout
使它们重叠。 mxHierarchicalLayout
不符合我目前的图表,但我不确定这是否有保证。防止JGraphX中的节点重叠
我可以1)避免在有机布局中重叠吗? 2)确保mxHierarchicalLayout
节点永远不会重叠?
我使用顶点具有显着大小的组件(通过覆盖mxGraphComponent.createComponents
),并使用mxOrganicLayout
或mxFastOrganicLayout
使它们重叠。 mxHierarchicalLayout
不符合我目前的图表,但我不确定这是否有保证。防止JGraphX中的节点重叠
我可以1)避免在有机布局中重叠吗? 2)确保mxHierarchicalLayout
节点永远不会重叠?
不知道您是否仍在寻找解决方案,但我在尝试避免重叠时发现您的问题。
如果您不知道,可以尝试一些有机布局的属性。例如,您可以执行以下操作:
mxFastOrganicLayout layout = new mxFastOrganicLayout(adapter);
layout.setForceConstant(150);
力常数已在文档下面的描述:
力常数,通过该吸引力被划分和replusive力是由多广场。
对于我来说,我玩过力量常数,直到我得到了一个重叠少得多的布局。还有许多其他属性可以用来查看这是否有助于解决重叠问题。是做了最差对我来说,那些如下:
layout.setMinDistanceLimit(5);
增加您minDistanceLimit
应该让你的顶点传播更多信息。
由于fastOrganicLayout也可以通过模拟退火工作,所以实际上可以指定最大迭代次数来运行布局。如果你的地图特别复杂(有许多顶点),它也可能有助于增加它。
layout.getMaxIterations(2000);
对我来说,改变力常数是最大的差异,但你的里程可能会有所不同。
我以前没有使用分层布局,但似乎有类似的属性,您可以更改哪些可能会减少重叠的机会。
如果你想出了比这更稳固的解决方案,那么如果你能分享它,那将是非常好的。
'还有很多其他的属性可以玩,以及' - 你可以更具体,哪些属性在这里相关? –
@VsevolodGolovanov感谢您的建议。我添加了一些更相关的属性。 – Tom