1

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

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

  • 规模 (1, y)
  • 翻译(0,最大)
  • 规模 (1, -1)

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

4

1 回答 1

1

是的,将它们相乘是正确的想法,但是您需要确保使用线性代数中的矩阵乘法将完整的 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,-y,-m) 以 svg 表示法

于 2013-11-04T12:16:15.290 回答