我正在使用vis.js显示网络图。在拖动节点后,我需要保持“边长度”,所以我使用物理选项。我的问题是,我拖动的节点总是弹回它的原始位置,我认为这是因为这些选项。
physics: {
forceAtlas2Based: {
gravitationalConstant: -150,
centralGravity: 0.005,
springLength: 180,
springConstant: 0.18,
},
maxVelocity: 146,
solver: "forceAtlas2Based",
timestep: 0.35,
stabilization: {
enabled: true,
iterations: 1000,
updateInterval: 25
}
}
所以我现在在想的是,如果有一种方法,我可以改变“中心”,让节点被拖动,这样物理重心就会围绕它旋转?
或
有没有一种方法可以重新稳定网络,而不让被拖动的节点反弹到其初始位置?
发布于 2020-08-26 23:11:47
当前无法将选定节点设置为重心。但您可以在dragStart
或dragEnd
等事件上更改它们的参数,如mass
。
network.on("dragStart", function(e){
const id = network.getNode(e.nodes[0]).id
nodes.update([ { id, mass: 5 } ])
})
你也可以运行network.stopSimulation()
或network.stabilize()
来停止物理模拟。
https://stackoverflow.com/questions/63461699
复制