旋转后如何计算新坐标?

时间:2021-01-17 19:30:43

标签: svg matrix transform

应用平移变换 (matrix(1 0 0 1 tx ty)) 我只需计算 x(new) = x + tx, y(new) = y + ty 即可获得新坐标。

应用尺度变换 (matrix(sx 0 0 sy 0 0)) 我只是相乘:x(new) = x * sx, y(new) = y * sy

现在我的问题是:我该如何进行旋转(旋转中心不是 0,0)?

一般来说:如何计算在 SVG 中应用矩阵 (a b c d e f) 后获得的新坐标?

1 个答案:

答案 0 :(得分:1)

我查了一些数学。

这是一个矩阵-向量-乘法。对于 SVG,这意味着:

matrix(a b c d e f) 对应于

x(new) = a*x + c*y + e

y(new) = b*x + d*y + f