在JGraphX中,是否在mxCircleLayout中正确处理了半径?

时间:2015-07-24 00:05:06

标签: jgraphx

在使用mxCircleLayout时,可以指定半径。但是,似乎半径仅影响半径大于基于图形边界的默认值的图形。在查看mxCircleLayout的源代码(JGraphX 3.3.1.1)时,第230行有:

        double r = Math.max(vertexCount * max / Math.PI, radius);

其中" r"用作圆布局的半径。不应该

        double r = Math.min(vertexCount * max / Math.PI, radius);

如果我想要更小的半径?也许我误解了什么" radius"意味着,但对于一个圆圈,它应该具有自然意义。并且改变线条给了我想要的(较小的)圆圈。

1 个答案:

答案 0 :(得分:0)

使用max以确保顶点不重叠。请参阅execute声明开头的评论:

    // Moves the vertices to build a circle. Makes sure the
    // radius is large enough for the vertices to not
    // overlap

然而,这似乎确实使用了最大顶点的边界,如果顶点具有不同的大小,其中最大值远大于平均值,则这个边界不是很有用。