我正在使用Visjs并使用文本显示矩形节点。一些节点可以有几行文本,所以我添加了一个启发式算法来大致计算出换行的位置,以避免非常宽但非常短的节点中非常宽的单行文本块。
麻烦的是,即使启用了物理,我仍然会得到重叠的节点。
是否有可能告诉布局引擎,在任何情况下(或物理模型),任何两个节点是否应重叠?
答案 0 :(得分:1)
好吧,看看physics configuration example:正如您所看到的,barnesHut
解算器具有avoidOverlap
属性,即使springConstant
等于零,也会阻止重叠。试试这个:
var options = {
"physics": {
"barnesHut": {
"springConstant": 0,
"avoidOverlap": 0.2
}
}
}
并调整常量以满足您的需求(上面链接的示例对此非常有用)。
答案 1 :(得分:0)
我在选项中使用了levelSeparation
和nodeDistance
来影响水平和垂直距离:
var options = {
layout: {
hierarchical: {
direction: "LR",
sortMethod: "directed",
levelSeparation: 300
}
},
physics: {
hierarchicalRepulsion: {
nodeDistance: 140
}
},
edges: {...},
nodes: {...}
}
你有一个例子吗?