【问题标题】:How to compute new coordinates after rotation?旋转后如何计算新坐标?
【发布时间】:2021-01-17 19:30:43
【问题描述】:

应用平移变换 (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) 后得到的新坐标?

【问题讨论】:

  • 0 0 以外的旋转中心基本上是平移,在 0,0 处旋转并在与初始平移相反的方向上平移。

标签: svg matrix transform


【解决方案1】:

我查了一些数学。

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

matrix(a b c d e f)对应

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多