Cytoscape.js-如何对复合节点使用一种布局,对复合节点的子代使用另一种布局

时间:2018-06-28 00:50:13

标签: javascript cytoscape.js

我试图在Cytoscape.js中使用多个布局。具体来说,我尝试使用concentric布局在一个圆中显示法线节点,在外部圆中显示复合节点。对于每个复合节点,我希望关联的子节点使用circle布局。

如果仅添加父节点,它们将正确显示在concentric布局的外部圆中。但是,一旦添加了子项并为每组子项运行circle布局,则子节点(以及随后的父节点)将呈现在整个图形的中心。我想知道是否有可能渲染图形,使复合父节点保留其在外圆中的位置,并且子节点相对于其父级位置以圆形成。

1 个答案:

答案 0 :(得分:1)

父节点没有直接通过布局设置其位置。父节点没有独立位置:http://js.cytoscape.org/#notation/position

父节点的位置完全取决于其子节点的位置。布局将仅设置非父节点的位置。某些具有复合感知功能的布局(例如CoSE)会在定位子节点时考虑复合父节点,以最小化它们的面积。

因此,如果要将复合节点放置在特定位置,请在其子节点(即children.layout().run())上运行布局,并用布局的边界框({​​{1}})定义最大边界。父母。