在vis.network中,是否可以设置一个节点为重心?

In vis.network, is it possible to set a node as the center of gravity?

我正在使用 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
    }
}

所以我现在想的是,如果有一种方法,我可以将“中心”更改为拖动的节点,以便物理重心围绕它旋转?

有没有办法在不让被拖动的节点弹回其初始位置的情况下重新稳定网络?

目前无法将所选节点设置为重心。但是您可以在 dragStartdragEnd.

等事件中更改它们的参数,例如 mass
network.on("dragStart", function(e){
    const id = network.getNode(e.nodes[0]).id
    nodes.update([ { id, mass: 5 } ])
})

您还可以运行network.stopSimulation()network.stabilize()停止物理模拟。