我可以设置多个物理场吗?

问题描述

有没有一种方法可以为不同的边缘集定义不同的物理学?

我想要实现的是将同一群集中的节点拉在一起,并将具有不同群集的节点推开。

此刻,我在选项中定义物理学:

FooState2

解决方法

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

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

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

 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,{ from: 2,to: 4 },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]的边覆盖了全局物理选项,因此它们不充当弹簧。