2015-12-02 220 views
1

是否可以給邊緣定長?即使我設置了單個邊的長度,物理引擎也會改變它。vis.js固定長度邊緣

我試圖想象3個集羣,每個集羣都有幾百個節點。有一個選項可以將羣集聚合成幾個節點。我想將這些聚集的節點與真正的短邊連接起來,並賦予這些節點很大的質量,這樣他們就會像其他羣集一樣,推翻其他羣集,就像他們有數百個節點時所做的那樣。

回答

1

無法設置固定長度。你可以使用默認springLengthspringConstant雖然玩不過,收銀臺上的物理文檔:

http://visjs.org/docs/network/physics.html

+0

您認爲如果我在代碼中進行挖掘以便物理引擎不會改變邊緣的長度,那麼可能會發生這種情況嗎? –

0

這似乎是這個問題的答案,這些天是YES!所述network/edges visjs.org docs描述了「長度」選項:

「在物理仿真給出了邊緣的彈簧長度這個值可以 覆蓋其餘部分的彈簧的長度」。

因此,當你設置你的邊緣,你可能會做這樣的事情做出額外的長邊:

myEdges.push({from:'nodeid1', to:'nodeid2', length:300}); 

默認的長度大約是95,我認爲,這樣的300長度將是正常的三倍。

如果要更改默認的邊長(不包括您已明確設置上邊緣的任何),那麼這就是網絡的「springLength」,所以通過同時使網絡的選項:

var network = new vis.Network(container, data, 
    {"physics": {"barnesHut": {"springLength":100, "springConstant": 0.04}}} 
); 

物理引擎可能會限制事物並隱藏您試圖查看的更改,因此您可能還需要調整諸如「springConstant」之類的內容。