将 SVG 转换序列替换为单个转换矩阵



我假设任何 SVG 序列都会转换 T1 是否正确......Tn 可以替换为单个泛型变换,其矩阵是通过将矩阵 M1 * ... * Mn 相乘得到的,其中 Mi 对应于变换 Ti?

我问是因为我试图用一个转换替换下面的转换序列:

  • 刻度 (1, y)
  • 平移(0,最大值)
  • 刻度 (1, -1)

如果我的假设是正确的,这将与矩阵(1, 0, 0, -y, 0, y*max)变换相同,对吗?

是的,你已经有了将它们相乘的正确想法,但你需要确保使用线性代数的矩阵乘法乘以完整的 3x3 仿射变换矩阵,并且你必须确保顺序是正确的方式,即从第一次变换开始,你必须将矩阵从右到左

所以正确的矩阵乘法是

[1  0 0][1 0 0][1 0 0]     [1  0  0]
[0 -1 0][0 1 m][0 y 0]  =  [0 -y -m]
[0  0 1][0 0 1][0 0 1]     [0  0  1]

或 (1,0,0,0,0,-y,-m) 以 SVG 表示法表示法

最新更新