2009-12-15 106 views
1

我使用Jung绘制图形。下面是一个简单的树形布局图,看起来不错。所有的渲染器和变压器都是默认的。如何防止顶点重叠?

alt text http://czuk.eu/stackoverflow/ballon_layout_default_size.png

现在,我已经通过设置自定义VertexShapeTransformer改变节点的默认大小为100px。问题是节点开始重叠。在这里你可以看到它的外观:

alt text http://czuk.eu/stackoverflow/ballon_layout_size_100px.png

是否有可能摆脱顶点重叠?这是布局还是某种形状转换的问题?

预先感谢您的:-)

回答

1

经过不长的调查,我发现有两个静态属性负责设置顶点之间的最小距离。这些是TreeLayout.DEFAULT_DISTXTreeLayout.DEFAULT_DISTY。不幸的是,这些属性定义了顶点之间的固定最小距离,但没有考虑可能不同的每个顶点的实际大小。该设置对TreeLayoutBalloonLayout有效,延伸TreeLayout

我也尝试其他布局,但我找不到类似的解决方案。这个问题是另一个问题;-)

0

也许你需要把节点之间的距离更大有什么建议?你从一定大小的节点开始一段距离。当你增加了节点的大小时,你减少了它们之间的空间,以补偿节点之间需要加入的额外距离以防止它们重叠。

+0

我不知道任何关于图形布局算法,但不应该他们认为节点大小? – czuk

1

当你创建一个TreeLayout您可以指定在构造函数中TreeLayout.DEFAULT_DISTXTreeLayout.DEFAULT_DISTY

TreeLayout treeLayout = new TreeLayout<String,Integer>(graph,100,100);