参考的是《游戏和图形学的3D数学入门教程》,非常不错的书,推荐阅读,老外很喜欢把一个东西解释的很详细。
1.一个普通的矩阵:
一个4×3的矩阵:
2.单位矩阵
单位矩阵就是右斜角全是1,其他位置是0的矩阵。
一个3×3的单位矩阵:
3.Transposition(转换)
经常看到一个矩阵的右上角有个T的符号,原来是Transposition的首字母。
4.矩阵与数相乘
非常简单,就是把这个数跟矩阵中的每个数都相乘。
5.两个矩阵相乘
印象中学《线性代数》,这里是第一个难点。
1.首先对于两个矩阵是否可以相乘是有要求的,假设要计算A矩阵乘以B矩阵,那么A矩阵的行数要等于B矩阵的列数才行。
比如上面这个A矩阵是4×2的矩阵,才可以跟2×5的B矩阵相乘。4×2的矩阵是不可以跟4×2的矩阵相乘的。
为什么会有这个规定?其实跟如何得到矩阵和矩阵相乘的结果有关。
假设我们有一个矩阵A,和矩阵B,如下图,那么如何相乘这两个矩阵呢?一个较简单的方法是把A矩阵和B矩阵如下摆放,结果矩阵肯定是5×4的矩阵。
那么C11 = A11B11 + A12B21。
同理C43 = A41B13 + A42B23 。
两个2×2矩阵的相乘如下:
知道了相乘的过程,就知道为什么4×2的矩阵是不可以跟4×2的矩阵相乘。还有下面一些结论就很简单了。
[…] 上面这个矩阵的作用就是,如果你要让一个东西在3D中绕x轴旋转一定度数,那么跟上面这个矩阵相乘就行了。就是还要懂矩阵相乘,参考这篇文章:Matrix 矩阵,单位矩阵,Transposition,矩阵与矩阵相乘 […]
[…] 还记得DirectX 9.0 C++ 教程 光照中这个旋转的水壶吗?当时我们用的是官方函数D3DXMatrixRotationY(D3DXMATRIX *pOut, FLOAT Angle)。刚刚我们已经学习了线性代数中的一些基础知识,Matrix 矩阵,单位矩阵,Transposition,矩阵与矩阵相乘,矩阵中的旋转(Rotation),我已经迫不及待想用自己写的旋转函数替换官方旋转函数了,来更好的记住数学知识,你呢? […]