「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」
作为一名优秀的开发者,对于技术的探求应该是永无止步的,如何让自己更进步,那就只有不停的学习,不停的充电.而这些都都是说起来容易做起来难,坚持才是难的地方 --蛙哈哈
如果我能更新完这一系列,我希望掘金能给我颁发一个劳模奖.
1.4矩阵运算
1.4.1 标量与矩阵相乘
与向量类似,矩阵也可以和标量相乘,中间不需要写运算符号,相乘之后的结果与原矩阵的维数相同,然后将每个分量乘上这个标量.
kM=k⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤=⎣⎡km11km21km31km12km22km32km13km23km33⎦⎤
1.4.2 矩阵与矩阵相乘
只有在某些特定的情况下,矩阵与矩阵之间才能相乘,并且结果还是矩阵,这种情况是:
第一个矩阵的列数等于第二个矩阵的行数,这两个矩阵才可以相乘,得到的矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数.
例如: 3 X 2 的矩阵 A 和 2 X 3 的矩阵 B 相乘的结果是一个 3 X 3的矩阵.
⎣⎡??????⎦⎤[??????]=⎣⎡?????????⎦⎤
假设有 r X n 的矩阵 A 和 n X c 的矩阵 B ,相乘之后的到的 r X c的矩阵 C C 的任意分量Cij 等于 A 的第 i 行的向量 点乘 B 的第 j列的向量.
1.4.3 矩阵与向量相乘
在 Shader 中,向量也可以与矩阵相乘,相乘的时候,可以把向量看成行数为1或者列数为1的矩阵.
[xyz]⎣⎡xyz⎦⎤
向量与矩阵相乘的几何意义是实现向量的空间转换(后面会介绍).
因为向量和矩阵相乘的前提是把向量看成一个矩阵,所以也要满足矩阵相乘的规则.
1.行向量左乘矩阵
[xyz]⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤=[xm11+ym21+zm31xm12+ym22+zm32xm13+ym23+zm33]
2.行向量右乘矩阵
⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤[xyz]
不满足矩阵线相乘的规则,没有意义.
3.列向量左乘矩阵
⎣⎡xyz⎦⎤⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤
不满足矩阵线相乘的规则,没有意义.
4.列向量右乘矩阵
⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤⎣⎡xyz⎦⎤=⎣⎡xm11xm21xm31ym12ym22ym32zm13zm23zm33⎦⎤
所以通过示例可以得出以下结论:
行向量左乘矩阵,所得结果依旧是行向量
列向量右乘矩阵,所得结果依旧是列向量