我试图在Cytoscape.js中使用多个布局。具体来说,我尝试使用concentric
布局在一个圆中显示法线节点,在外部圆中显示复合节点。对于每个复合节点,我希望关联的子节点使用circle
布局。
如果仅添加父节点,它们将正确显示在concentric
布局的外部圆中。但是,一旦添加了子项并为每组子项运行circle
布局,则子节点(以及随后的父节点)将呈现在整个图形的中心。我想知道是否有可能渲染图形,使复合父节点保留其在外圆中的位置,并且子节点相对于其父级位置以圆形成。
答案 0 :(得分:1)
父节点没有直接通过布局设置其位置。父节点没有独立位置:http://js.cytoscape.org/#notation/position
父节点的位置完全取决于其子节点的位置。布局将仅设置非父节点的位置。某些具有复合感知功能的布局(例如CoSE)会在定位子节点时考虑复合父节点,以最小化它们的面积。
因此,如果要将复合节点放置在特定位置,请在其子节点(即children.layout().run()
)上运行布局,并用布局的边界框({{1}})定义最大边界。父母。