将给定的svg坐标转换为屏幕坐标

时间:2019-11-07 15:50:46

标签: javascript reactjs svg

我已经从SVG中记录了坐标。因此,我拥有的坐标是相对于它的。但是,当SVG显示在网络上时,我将其缩放以适合屏幕大小。我需要将svg中的坐标转换到屏幕上,以便可以在屏幕上正确显示。

我尝试使用以下代码,这些代码是我从其他人那里看到的,但是我认为此代码的使用方式存在巨大差异,因为它们基于鼠标事件的坐标:

let svg = ReactDOM.findDOMNode(svgInDom).children[0].children[0];
let sctm = new DOMMatrix(); 
sctm = svg.getScreenCTM();
let svgPt = svg.createSVGPoint();

// one of the stored coordinates
svgPt.x = prevLocations.x_value;
svgPt.y = prevLocations.y_value;

let svgP = svgPt.matrixTransform(sctm);

鉴于我从SVG本身存储的坐标,我希望将它们转换为屏幕。例如,将点(30,30)放置在本地svg文件内的矩形内,并且将该svg相应于dom放置后,我也想显示该点(30,30)也位于矩形内,但是当然,我需要获取新的坐标。

0 个答案:

没有答案