javascript - CSS矩阵乘法

标签 javascript css 3d webkit

根据 WebKitCSSMatrix documentation , multiply() 函数“返回此矩阵与右侧给定矩阵相乘的结果。”。所以

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

和乙:

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

使用 this tool a 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

我错过了什么吗?

最佳答案

您的观察是正确的,但规范的描述也是正确的。您必须注意的是,CSS 规范中定义的矩阵是列优先的,而大多数数学书籍将以行优先格式处理矩阵。尝试转换它,看看会发生什么。

关于javascript - CSS矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7468584/

相关文章:

css - 如何启用 CSS 位置 : sticky in mobile browsers?

html - 节 id 和类定义覆盖容器高度

javascript - 无法将 For 循环与 Promise 一起使用

javascript - 如何修复我的 CSS 并使我的网站看起来像博客或杂志?

javascript - 如何按名称选择所有输入?

javascript - 通过js在搜索结果中选择单词

javascript - 需要一个元素在到达页面时移动位置

c# - 如何使用 C# 绘制 3D 管的下半部分

matlab - 在 MATLAB 中绘制 3-D 矩阵*值*

3D 球体标签云