获取 svg 经过 d3 变换 [transform(缩放、旋转等)]后点的坐标

主要代码

/** transform matrix start */
// rect: svg 图形元素;self.g: 当前进行 transform 的元素,即 需要计算 transform 后坐标的点所在的进行 transform 的容器
// getPointAtLength: SVG路径对象.getPointAtLength(len), 该方法返回路径上指定距离的点的坐标,此处为 rect 左上角的点的坐标
const localPoint = rect.node().getPointAtLength(0)
const localTransformList = self.g.node().transform.baseVal
let localMatrix = self.g.node().viewportElement.createSVGMatrix()
// is there at least one entry?
if (localTransformList.length) {
   // consolidate multiple entries into one
   localMatrix = localTransformList.consolidate().matrix
}
const transformedPoint = localPoint.matrixTransform(localMatrix)

/** transform matrix end */
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容