2011-09-19 25 views
1

根據WebKitCSSMatrix documentation,乘()函數「返回由一個給定的矩陣,它是在右邊這個矩陣相乘的結果。」。所以CSSMatrix乘法

a.multiply(b)必須在數學符號等於a b

但似乎a.multiply(b)確實等於b a;當給定矩陣在左邊時,結果等於產品。

有關示例:

讓一個:

2, -2, 5, 0 
-1, 0, 12, 0 
3, 1, -2, 0 
0, 0, 0, 1 

和B:

1, 4, 3, 0 
3, 1, 5, 0 
3, 4, 3, 0 
0, 0, 0, 1 

使用this toola b產物是

c = a b: 

11, 26, 11, 0 
35, 44, 33, 0 
0, 5, 8, 0 
0, 0, 0, 1 

在JavaScript:

a = new WebKitCSSMatrix("matrix3d(2,-2,5,0, -1,0,12,0, 3,1,-2,0, 0,0,0,1)") 
b = new WebKitCSSMatrix("matrix3d(1,4,3,0, 3,1,5,0, 3,4,3,0, 0,0,0,1)"); 

a.multiply(b)是:

7, 1, 47, 0 
20, -1, 17, 0 
11, -3, 57, 0 
0, 0, 0, 1 

但實際上b.multiply(a)是矩陣c

我錯過了什麼?

回答

1

你在你的觀察正確的,但該規範也是正確的其描述。你要觀察什麼,在CSS規範中定義的矩陣是列爲主而大多數數學書將解決行優先格式矩陣。嘗試轉換它,看看會發生什麼。