使用Javascript获取SVG路径的绝对坐标
我正在创建一个程序,将SVG文件转换为我自己的格式。为此,我创建了一个基于web的应用程序。我使用web浏览器的默认DOM解析功能来迭代SVG内容 使用Javascript,我可以通过以下方式获得SVG路径元素:使用Javascript获取SVG路径的绝对坐标,javascript,svg,Javascript,Svg,我正在创建一个程序,将SVG文件转换为我自己的格式。为此,我创建了一个基于web的应用程序。我使用web浏览器的默认DOM解析功能来迭代SVG内容 使用Javascript,我可以通过以下方式获得SVG路径元素: var path = document.getElementById("path3388"); 我可以使用以下方法获取路径段: var pathSegments = path.pathSegList 但是,这些路径段是相对于定义的任何父SVG元素的。变换不包括在路径段列表中 当在屏
var path = document.getElementById("path3388");
我可以使用以下方法获取路径段:
var pathSegments = path.pathSegList
但是,这些路径段是相对于定义的任何父SVG元素的。变换不包括在路径段列表中
当在屏幕上绘制时,是否有办法获得最终使用的该路径的绝对坐标
示例:假设我得到了以下SVG片段:
<g transform="translate(100, 100)">
<g transform="translate(50, 50)">
<path d="M 0,0 10,0 10,10"></path>
</g>
</g>
您希望对每个路径段坐标执行类似操作
var root=document.getElementById(“根”);
var path=document.getElementById(“路径”);
var point=root.createSVGPoint();
点x=0;//将其替换为路径段的x坐标
点y=0;//将其替换为路径段的y坐标
var矩阵=path.getTransfermToElement(根);
var位置=点矩阵变换(矩阵);
警报(位置x+“,”+位置y)代码>
从v48开始,Chrome不再支持path.getTransferormtoElement()
一个稍微简单的方法可能需要
const pathBBox = document.getElementById("path").getBBox();
console.log(pathBBox.x, pathBBox.y);
嗨,罗伯特,谢谢你的回答这正是我要找的!
const pathBBox = document.getElementById("path").getBBox();
console.log(pathBBox.x, pathBBox.y);