【问题标题】:Can I set multiple physics?我可以设置多个物理吗?
【发布时间】:2020-12-24 14:13:27
【问题描述】:

有没有办法为不同的边集定义不同的物理特性?

我想要实现的是将位于同一个集群中的节点拉到一起,然后将那些具有不同集群的节点推开。

目前我在选项中定义物理:

const options = {
  physics: {
    enabled: true,
    barnesHut: {
      gravitationalConstant: -80000, 
      springConstant: 0.001, 
      springLength: 200,
      centralGravity: 0,
    },
  },
};

【问题讨论】:

    标签: vis.js vis.js-network


    【解决方案1】:

    在阅读文档时,我发现无法设置不同的物理。

    但是有一种方法可以停用特定节点或边的物理特性。

    因此,您必须覆盖节点/边的全局选项。 这可以通过在节点/边本身中定义选项来实现。

     var nodes = new vis.DataSet([
        { id: 1, label: "Node 1" },
        { id: 2, label: "Node 2" },
        { id: 3, label: "Node 3" },
        { id: 4, label: "Node 4" },
        { id: 5, label: "Node 5" }
      ]);
    
      // create an array with edges
      var edges = new vis.DataSet([
        { from: 1, to: 3, physics: false },
        { from: 1, to: 2, physics: false },
        { from: 2, to: 4 },
        { from: 2, to: 5 },
        { from: 3, to: 3 }
      ]);
    
      // create a network
      var container = document.getElementById("mynetwork");
      var data = {
        nodes: nodes,
        edges: edges
      };
      var options = {
        physics: {
          enabled: true,
        }
      };
    
      var network = new vis.Network(container, data, options);
    

    在本例中,边 [从 1 到 3] 和 [从 1 到 2] 覆盖了全局物理选项,因此它们不充当弹簧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 2015-11-14
      • 2014-12-09
      • 2017-04-21
      • 2017-05-20
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多