我有固定节点大小和缩放的cytoscape.js图。我希望将整个图形(DAG,几乎没有树和#34;非树和#34;边缘的树)放入具有固定宽度和无限高度的视口中。我实施它有麻烦。
我使用breadthfirst
布局。此布局需要边界框(显式或从当前视口中获取)。我试图将其推入相当大的边界框,然后从节点位置计算图形高度,然后调整边界框。这不起作用,因为布局试图尽可能多地使用空间并拉伸边缘。
是否有cytoscape.js布局,它可以执行类似BFS的操作并指定级别之间的最大距离?或者有更好的方法来解决我的问题?
答案 0 :(得分:1)
如果使用avoidOverlap: true
,则不必指定边界框。它必须在必要时溢出边界框。您可以指定spacingFactor
来调整级别之间的间距。
如果您有固定缩放,则可能需要在之后调用cy.center()
。
你不能避免重叠(即有溢出),也保证固定的大小。您可以通过在布局后将节点位置压缩在一起来手动强制执行水平宽度 - 但这可能会导致重叠。