【发布时间】:2018-12-29 23:04:48
【问题描述】:
我正在尝试获取bounding box 内实际旋转矩形的position。
矩形旋转120deg
我正在尝试实现您可以在此处看到的蓝色轮廓
我设法使用matrix 正确获得rotation,但我无法正确获得其余部分。
这是我的代码
let svg = document.querySelector('svg')
let overlay = document.querySelector('.overlay')
let rect = svg.children[0]
let bounds = rect.getBoundingClientRect()
let matrix = rect.getCTM()
overlay.style.top = bounds.top + 'px'
overlay.style.left = bounds.left + 'px'
overlay.style.width = bounds.width + 'px'
overlay.style.height = bounds.height + 'px'
overlay.style.transform = `matrix(${matrix.a},${matrix.b},${matrix.c},${matrix.d},0,0)`
【问题讨论】:
-
看stackoverflow.com/questions/41898990这些信息够计算你想要的吗?
-
在我的情况下,我不知道矩形本身的高度和宽度,我只知道边界框的宽度/高度,所以我认为它在这种情况下不起作用
-
已知数据是边界框宽度/高度和旋转角度?没有了?
-
是的,我知道边界框的高度、宽度、顶部、左侧位置,最后是角度(120 度)。没有别的
-
@MBo 我有这个问题的确切反面,如何获得未旋转矩形的边界stackoverflow.com/questions/54072295/…
标签: math svg rotation geometry svg-transforms