Java 如何部分自动布局graphstream图形

Java 如何部分自动布局graphstream图形,java,graphstream,Java,Graphstream,如果我在Graphstream图形中有一些固定的节点坐标,我能让Graphstream“填补空白”并自动布局那些没有手动指定位置的节点吗 例如: Node n1=graph.addNode(“n1”); n1.setAttribute(“xy”,-0.1,53.35); Node n2=graph.addNode(“n2”); 图.附录(“n1n2”,n1,n2); Node n3=graph.addNode(“n3”); n3.setAttribute(“xy”,-0.4,56.35); 图.

如果我在Graphstream图形中有一些固定的节点坐标,我能让Graphstream“填补空白”并自动布局那些没有手动指定位置的节点吗

例如:

Node n1=graph.addNode(“n1”);
n1.setAttribute(“xy”,-0.1,53.35);
Node n2=graph.addNode(“n2”);
图.附录(“n1n2”,n1,n2);
Node n3=graph.addNode(“n3”);
n3.setAttribute(“xy”,-0.4,56.35);
图.附录(“n2n3”,n2,n3);
鉴于上述情况,n2没有指定位置。有没有可能让GraphStream来推断它,而不是仅仅因为它不知道它在哪里而不显示它


如果我使用
viewer.disableAutoLayout(),它不会显示未定位的节点;如果我使用
viewer.enableAutoLayout()然后它会忽略我的手动节点位置。

有一些设置可用于(某种程度上)执行此操作,尽管推断的位置不是已知位置的平均值

修改上述代码:

Node n1=graph.addNode(“n1”);
n1.setAttribute(“xy”,-0.1,53.35);
n1.addAttribute(“layout.freezed”);
Node n2=graph.addNode(“n2”);
图.附录(“n1n2”,n1,n2);
Node n3=graph.addNode(“n3”);
n3.setAttribute(“xy”,-0.4,56.35);
n3.addAttribute(“layout.freezed”);
图.附录(“n2n3”,n2,n3);
SpringBox布局=新SpringBox(假,新随机(0));
查看器。启用自动布局(布局);
layout.freezed
属性添加到具有已知位置的节点,将阻止布局管理器移动这些节点

但是,推断的位置/边长度不一定与已知的位置/边长度具有相同的比例。这可以通过在每个节点和每个边上设置一个
layout.weight
属性来调整-作为一个大于0的数字。在节点上,设置每个节点排斥相邻节点的程度;在边上,它是目标边长度的乘数。有关更多详细信息,请参阅