有没有可能给边缘设定一个固定的长度?即使我设置了单个边缘的长度,物理引擎也会改变它。
我正在尝试将3个簇聚合到一起,每个簇都有几百个节点。有一种选项可以将簇聚合成几个节点。我想用真正短的边缘连接这些聚合节点,并给这些节点高质量,以便它们将像拥有数百个节点时所做的那样排斥其他簇。
有没有可能给边缘设定一个固定的长度?即使我设置了单个边缘的长度,物理引擎也会改变它。
我正在尝试将3个簇聚合到一起,每个簇都有几百个节点。有一种选项可以将簇聚合成几个节点。我想用真正短的边缘连接这些聚合节点,并给这些节点高质量,以便它们将像拥有数百个节点时所做的那样排斥其他簇。
因此,当您设置边缘时,您可能会像这样做一些额外的长边:"物理模拟给边缘一个弹簧长度。这个值可以覆盖静止时弹簧的长度。"
myEdges.push({from:'nodeid1', to:'nodeid2', length:300});
默认长度大约是95,所以长度为300将是正常长度的三倍左右。
如果您想更改默认边缘长度(不包括您在边缘上明确设置的任何长度),则这是网络的“springLength”,因此在创建网络时传递一个选项:
var network = new vis.Network(container, data,
{"physics": {"barnesHut": {"springLength":100, "springConstant": 0.04}}}
);
物理引擎可能会限制一些事情,并且有点掩盖你想要看到的变化,因此您可能还需要调整诸如“springConstant”之类的东西。
无法设置固定长度。但是您可以尝试使用默认的springLength
和springConstant
进行调整,查看物理文档以获取更多信息: