【问题标题】:How to prevent vertex from overlapping?如何防止顶点重叠?
【发布时间】:2010-12-26 22:29:32
【问题描述】:

我使用 Jung 来绘制图表。下面是一个看起来不错的带有树形布局的简单图表。所有渲染器和转换器都是默认的。

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

现在,我通过设置自定义VertexShapeTransformer 将节点的默认大小更改为 100 像素。问题是节点开始重叠。在这里你可以看到它的样子:

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

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

提前感谢您的任何建议:-)

【问题讨论】:

    标签: java jung graph-visualization


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      创建TreeLayout 时,可以在构造函数中指定TreeLayout.DEFAULT_DISTXTreeLayout.DEFAULT_DISTY

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

      【讨论】:

        【解决方案3】:

        也许您需要在节点之间放置更大的距离?您从一定距离和一定大小的节点开始。当您增加节点的大小时,您会减少它们之间的空间,以补偿节点之间的额外距离,以防止它们重叠。

        【讨论】:

        • 我对图布局算法一无所知,但他们不应该考虑节点大小吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 2020-05-09
        • 2013-01-15
        • 2018-05-03
        相关资源
        最近更新 更多