javascript - vis.js 网络拟合函数

标签 javascript vis.js vis.js-network

我正在使用 vis.js 4.16.1 来绘制网络图。目前我有两个网络图。一张供用户绘制的网络图。用户完成后,我想将网络图的所有内容准确复制到第二个网络图。然而,我无法设定与第一个相同的观点。这是第一个网络的选项:

options = {
    locale: 'en',
    physics: {
        "enabled": false,
    },
    edges: {
        smooth: {
            type: 'continuous'
        }
    },
    interaction: {
        navigationButtons: true,
        selectConnectedEdges: false
    }
};

我已禁用物理以允许用户自己组织节点。
这是第二个网络的选项:

var options = {
    locale: 'en',
    physics: {
        "enabled": false
    },
    edges: {
        smooth: {
            type: 'continuous'
        }
    },
    interaction: {
        dragNodes: false,
        dragView:true
    }
};

当我使用 fit 函数 ( http://www.cse.unsw.edu.au/~mike/myrlibrary/visNetwork/doc/network/ )

var fitOption = {
    nodes: nodes.getIds() //nodes is type of vis.DataSet contains all the nodes
}
secondNetwork.fit(fitOption);

没有任何改变。 当我使用 moveTo 函数时:

var centerOptions = {
    position: {
        x: firstNetwork.getViewPosition().x, 
        y: firstNetwork.getViewPosition().y},
    }
}
secondNetwork.moveTo(centerOptions);

不过,我无法将 Canvas 移动到第一个网络聚焦的位置。 Canvas 根本没有动。 有人可以给我一些建议吗?预先感谢,

最佳答案

谢谢 Reiner,我已经找出了 fit() 和 moveTo() 函数在我的上下文中不起作用的原因,我需要设置选项:

 physics: {
     "enabled": true
 }

否则无法正常工作。所做的是在调用我的 fit() 函数之前,将启用更改为 true,调用 fit() 函数,然后将启用设置为 false。

关于javascript - vis.js 网络拟合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810722/

相关文章:

javascript - 为什么我的 jquery 删除列表中的第一个元素而不是指定的元素?

javascript - 替换字符串时如何避免重复?

javascript - 在 vis.js 中用最少的物理避免重叠边

javascript - 如何解决使用viewchild ElementRef时无法读取 Angular 中未定义的属性 'nativeElement'

javascript - Neo4j 和 Neovis.js

graph - Vis.js - 获取节点的子节点

javascript - 在javascript中查找多维数组的行和列

javascript - 模糊不透明的 div 背景(页面背景似乎通过 div 模糊)

javascript - vis.js - Graph2d - 使组不可见