我试图实现"缩放到节点"在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行计算。请注意,元素是响应的,可能会导致一些麻烦。