Javascript 如何知道SVG路径的绝对位置?
我用InkScape生成了一个SVG,所有路径都移动到相对位置(m):Javascript 如何知道SVG路径的绝对位置?,javascript,svg,Javascript,Svg,我用InkScape生成了一个SVG,所有路径都移动到相对位置(m): 罗塞洛 我需要从javascript知道每个路径的绝对位置,但我不能。在我看来,这就是你想要的。我找到了一种知道绝对位置的方法。错误在于试图找到绝对坐标,而没有像InkScape那样应用底层平移和计数像素,从下到上,而不是像SVG那样从上到下 按照此陡度,以像素为单位了解路径第一个节点的绝对位置: 首先获取svg对象的宽度和高度。斯维特,斯维特 第二,获得基本布局的变换平移。BaseTranx,BaseTrans 第三,
罗塞洛
我需要从javascript知道每个路径的绝对位置,但我不能。在我看来,这就是你想要的。我找到了一种知道绝对位置的方法。错误在于试图找到绝对坐标,而没有像InkScape那样应用底层平移和计数像素,从下到上,而不是像SVG那样从上到下 按照此陡度,以像素为单位了解路径第一个节点的绝对位置: 首先获取svg对象的宽度和高度。斯维特,斯维特 第二,获得基本布局的变换平移。BaseTranx,BaseTrans 第三,获取路径的第一个节点。pathX,pathY 如果存在,则获取路径的变换平移,如果不为0。pathTransX,pathTransY 使用此值,我们可以找到InkScape中第一个节点的绝对X和Y: X=baseTransX+pathTransX+pathX
Y=svgHeight-(baseTransY+pathTransY+pathY)试试这样的方法:
ele=$('#Rosello')[0]
var bbox = ele.getBBox()
var top = bbox.y + bbox.y2
在x方向也应如此
我不确定,但我观察到getBBox相当慢。所以要小心。谢谢Robert,但是尝试每个方法和属性normalizedPathSegList总是为null,Chrome没有getNormalizedPathSegList()未捕获类型错误:Object[Object svgpatheElement]没有方法“getNormalizedPathSegList”@corretge:那是因为它不是您的路径。getNormalizedPathSegList(),这是yourpath.normalizedPathSegList。@ErikDahlström正在尝试这个方法,正如我在第一条评论中所说,我得到的是null。
ele=$('#Rosello')[0]
var bbox = ele.getBBox()
var top = bbox.y + bbox.y2