Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript获取SVG路径的绝对坐标_Javascript_Svg - Fatal编程技术网

使用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元素的。变换不包括在路径段列表中 当在屏

我正在创建一个程序,将SVG文件转换为我自己的格式。为此,我创建了一个基于web的应用程序。我使用web浏览器的默认DOM解析功能来迭代SVG内容

使用Javascript,我可以通过以下方式获得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);