我使用Cytoscape.js在单独的画布中渲染多个树布局。
目前,每个画布都由具有设定尺寸(例如400x400)的容器div包围。 Cytoscape提供了一个设置,使每个树都适合其容器,并将每个树中的一个放大到必要的程度,以使整个树在给定的维度内可见。
我不想告诉每个布局是否适合容器,而是希望调整每个容器的大小以完全适应其子画布。换句话说,我需要一种方法来询问Cytoscape画布的每个实例,“你在0缩放时的宽度和高度是多少”,或者“在每个方向上需要多少像素才能完全绘制”,然后调整每个容器适当。
Cytoscape确实提供了获取画布width()
和height()
的方法,但这些方法最终是实际尺寸(可能不适合容器),而不是“所需”/所需尺寸。
我想到我可以根据节点数和边数设置一些启发式设置容器的宽度和高度,但这种方法尚未证明有效;节点和边缘的数量告诉我很少关于最终的布局和布局,仅通过决定所需的宽度和高度。
答案 0 :(得分:0)
您是否尝试过使用:
ValidationMixin
或:
eles.boundingBox(options);
'eles'必须是这样的:
eles.renderedBoundingBox();
您可以通过cytoscape方法获取有关节点的两个信息: 在cytoscape中的实际位置及其呈现位置,请阅读本文以获取更多信息:
http://js.cytoscape.org/#notation/position
关于你的第二个问题:
如果您只是致电
,那么对齐树很容易var eles = cy.elements();