Cytoscape.js:计算当前缩放级别的图形尺寸?
Cytoscape.js: calculate graph dimensions at current zoom level?
我想根据图表的高度调整 a)
容器 DOM 元素和 b)
缩放级别。
假设我向图中动态添加节点和边。给定最大缩放级别 (zMax
) 和最大容器高度 (cMax
),我想根据以下规则进行调整:
- 如果在当前缩放级别
z == zMax && graphHeight < cMax
,则保持缩放级别不变并调整容器大小以适合图形。
- 如果在当前缩放级别
graphHeight == cMax
,则尽可能缩小 z
。
问题是,我不确定是否有任何内置功能可以在当前缩放级别计算图表的高度(以像素为单位)。我想我可以遍历节点并找到最低和最高的 y 值,但我希望有一个更有效的选择。
您应该使用在渲染(屏幕上)坐标中 return 值的函数。
见http://js.cytoscape.org/#notation/position
另见 http://js.cytoscape.org/#eles.renderedBoundingBox
例如cy.elements().renderedBoundingBox().h
是整个图的渲染高度。
我想根据图表的高度调整 a)
容器 DOM 元素和 b)
缩放级别。
假设我向图中动态添加节点和边。给定最大缩放级别 (zMax
) 和最大容器高度 (cMax
),我想根据以下规则进行调整:
- 如果在当前缩放级别
z == zMax && graphHeight < cMax
,则保持缩放级别不变并调整容器大小以适合图形。 - 如果在当前缩放级别
graphHeight == cMax
,则尽可能缩小z
。
问题是,我不确定是否有任何内置功能可以在当前缩放级别计算图表的高度(以像素为单位)。我想我可以遍历节点并找到最低和最高的 y 值,但我希望有一个更有效的选择。
您应该使用在渲染(屏幕上)坐标中 return 值的函数。
见http://js.cytoscape.org/#notation/position
另见 http://js.cytoscape.org/#eles.renderedBoundingBox
例如cy.elements().renderedBoundingBox().h
是整个图的渲染高度。