【发布时间】:2014-02-24 12:12:16
【问题描述】:
我有一个强制布局设计的 d3.js 图表。我允许用户在设置了边界的情况下放大和缩小图形,因此他们不能放大过去 1 并且不能缩小过去 0.1。现在,当我在图表上绘制值时,我会自动将它们发送到图表的中心(基于 SVG 容器的高度和宽度)。这工作正常,直到我缩小然后放大到其他地方并绘制一个新节点。新节点最终会回到原来的中心,而不是我的新相对中心。
我现在缩放时如何缩放:
function onZoom() {
graph.attr("transform", "translate(" + zoom.translate() + ")" + " scale(" + zoom.scale() + ")");
}
我无法找到任何调用来获取图形的当前可见坐标,但即使有这些,如果我的 SVG 图形大小始终保持不变,我将如何使用它们来计算图形的相对中心?
【问题讨论】:
-
也许我误解了这一点,但缩放在演示中似乎很合适。
-
你是对的,缩放工作正常。问题不在于缩放,而是找到相对于我放大位置的图表中心。
标签: d3.js graph center force-layout