我有一个问题,可能无法很好地理解坐标在 SVG 中的工作原理。我有一个缩放 svg 图形的 javascript 函数,例如:
var g = document.getElementById("graph");
var nm = g.getCTM().multiply(k); //k is the scale factor
g.setAttribute("transform", "matrix(" + nm.a + "," + nm.b + "," + nm.c + "," + nm.d + "," + nm.e + "," + nm.f + ")");
关键是在缩放后中心会稍微平移,因此图形失去了“地理”中心。我如何才能确定我需要哪种翻译才能“围绕”其中心缩放图形?
谢谢。
最佳答案
您是否考虑过其他方法?
如果您只是想放大/缩小 svg,则可能更容易以不同的方式进行,例如: http://www.cyberz.org/blog/2009/12/08/svgpan-a-javascript-svg-panzoomdrag-library/
我前一段时间遇到了同样的问题,最后使用这个创建了我自己的缩放:https://github.com/rstacruz/jquery.transit
基本上,您将 css 变换缩放比例用于 svg 包装器,并且 svg 可以很好地调整。您甚至可以为缩放设置动画。
关于javascript - 使用纯 javascript 围绕中心缩放 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859708/