程序化缩放到力导向图中的节点

时间:2015-02-10 18:04:04

标签: javascript svg d3.js coffeescript

我试图实现"缩放到节点"在d3中的力导向图中的行为。用户应该能够单击链接,这会触发过渡缩放到图表布局中的特定节点。

使用"semantic" zoom方法正常缩放(例如使用鼠标/触摸事件)正常工作。

我尝试以编程方式设置翻译矢量和缩放,然后手动触发缩放事件,但我不确定如何计算翻译矢量,以便使用它来指定指定节点' sx和y坐标

zoomToNode = (n) ->
  zoom.scale(4)                 # scaleExtent() = [1,10]
  # how do i calculate the translate vector here?
  zoom.event(vis)

我也不知道如何在过渡时使用它。

感谢任何帮助,谢谢。

更新

我仍然无法弄清楚如何计算正确的翻译向量..请参阅this jsfiddle。翻译向量在第290行计算。请注意,元素是响应的,可能会导致一些麻烦。

0 个答案:

没有答案