如何使 Cytoscape.js 中的边不被拦截?

How can I make edges in Cytoscape.js not intercept?

我正在使用 Cytoscape 库制作图形,并且我正在使用此设置

  layout: {
    name: 'cose',
        idealEdgeLength: 100,
        nodeOverlap: 20,
        refresh: 20,
        fit: true,
        padding: 30,
        randomize: false,
        componentSpacing: 50,
        nodeRepulsion: 400000,
        edgeElasticity: 100,
        nestingFactor: 5,
        gravity: 300,
        numIter: 1000,
        initialTemp: 200,
        coolingFactor: 0.95,
        minTemp: 1.0
  },

图形还可以,但边有时会相互截断,我需要多次刷新图形或重新排列图形以获得好看的图形。是否可以强制 Cytoscape 在渲染时不拦截边缘?

力导向布局是一种物理模拟,它设置每个元素的力来约束结果。相对边长通常具有与之相关的含义(例如权重),并且您通常希望看到自然聚类。考虑到这些事情避免边缘交叉通常会产生冲突。

Graphviz 和 Mathematica 具有平面布局,如果您愿意,可以将它们移植到 Cytoscape 布局扩展。但是,您将失去力导向布局的好处。

另请参阅:

这个解决方案解决了我的问题"cose-bilkent"。

  layout: {
    name: 'cose-bilkent',
        animate: false
  },

它没有包含在正式版本中,应该包含额外的库https://cdn.rawgit.com/cytoscape/cytoscape.js-cose-bilkent/1.6.5/cytoscape-cose-bilkent.js

演示在这里http://js.cytoscape.org/demos/6c9907e7896f8ae23f9f/