0

我想测试特定 SVG 元素的位置是在当前可见的平移缩放区域内部还是外部。如果它在外面,那么我可以平移以使其刚好在相应的边界内。

这听起来像是一个简单的操作,只是我找不到正确的测试来查看某个点是否在可见区域之外;如果我能做到这一点,那么我可以毫不费力地处理平底锅。

根据原始元素 x/y 属性,我拥有的位置是未转换的位置,因此我希望必须访问适当的 CTM,但我找不到这个。

4

1 回答 1

0

哎呀,我有点仓促地发布了这个问题。CTM 隐藏<g>在由 pan-zoom 库创建的特定元素上,以围绕您自己的 SVG 元素。

可以使用以下方法找到:

var ctm = document.getElementById("svg-id").querySelector('.svg-pan-zoom_viewport').getCTM();

其中 svg-id 是您自己的<svg>元素 ID。

由此,很容易使用矩阵计算在新旧坐标系之间进行映射,按照变换

于 2021-01-13T18:05:20.053 回答