矩阵基础
1.认识矩阵
2.矩阵维度和记法
3.方阵
行数和列数相同的矩阵,称为方阵
我们的课程中,主要讨论的范畴就是在 22、33、44方阵
方阵的对角线元素就是方阵的行号和列号相同的元素;例如 33矩阵M的对⻆角线元素为m11 m12 m13 m11、m22、m33。其他元素都是非对角元素。
思考
下⾯面A ,B 矩阵那个是单元矩阵?
4.单位矩阵
单位矩阵,是一种特殊的对角矩阵,n维单位矩阵记做 In。是n * n 矩阵。对象元素为1.其他元素为0。 例如 3 * 3 单位矩阵
单位矩阵非常特殊,因为它是矩阵乘法单位元,其基本性质是用任意1个矩阵乘以单位矩阵,都将得到原矩阵。所以在某种意义上对矩阵的作用就犹如1对于标量的作用。
5.向量作为矩阵使用
注意: 任意矩阵M, (MT)T = M 对角矩阵: DT = D,单元矩阵
6 矩阵转置
一个r * c 矩阵M。M的转置记做MT,是一个 c * r 矩阵。它的列列由M的⾏行行组成。可以从另⽅面理解。
MijT = Mji ,即沿着矩阵的对角线翻折。
对向量⽽言,转置将使得行向量变成列向量,是列向量变成行向量。
7 标量 与 矩阵相乘
8 矩阵与矩阵相乘
一个R * N的矩阵A 能够乘以一个 N * C矩阵B = R * C 矩阵
注意:如果 A的N != B的N 则乘法AB就无意义.
例如,设A 为 4 * 2 矩阵,B 为 2 * 5 矩阵,那么结果AB 为 4 * 5 矩阵。
矩阵相乘法则:对结果中的任意元素Cij,取A的第i行和第j列,将行和列中的对应元素相乘。然后将结果相加 (等于A的i列列和B的j列列的点积)。Cij就等于这个和。
例如
(C的第2⾏行行第4列列的元素等于A的第2⾏行行和B的第4列列的点积)
2 * 2 矩阵相乘完整公式
矩阵乘法注意事项:
1.任意矩阵M乘以方阵S,不管从哪边乘,都得到与原矩阵⼤小相同的矩阵。当然,前提是假定乘法有意义。如果S是单位矩阵,结果就是原矩阵M,即:MI = IM = M 。
2.矩阵乘法不满足交换律,即:AB != BA
3.矩阵乘法满足结合律,即:(AB)C = A(BC)。假定ABC的维数使得其乘法有意义,要注意如果(AB)C有意义,那么A(BC)就一定有意义。
4.矩阵乘法也满足与标量或向量的结合律,即:(kA)B = k(AB) = A(kB); (vA)B = v(AB);
5.矩阵积的转置相当于先转置矩阵然后以相反的顺序乘法,即:(AB)T = BT AT
9 向量量与矩阵的乘法
思考
向量量与矩阵相乘结果是多少?是否具有意义?
向量量与矩阵的乘法详解
总结
行向量左乘矩阵时,结果是行向量;
列向量右乘矩阵时,结果是列向量;
⾏向量右乘矩阵时,结果是无意义;
列向量左乘矩阵时,结果是无意义;
矩阵与向量相乘 注意事项:
1.结果向量中的每个元素都是原向量与矩阵中单独行或列的点积;
2.矩阵一向量乘法满足对向量加法的分配律,对于向量v,w和矩阵M有,(v + w)M = vM + wM;
10 ⾏向量与列向量的使用场景
为么要使用行向量?(偏向于书写方便)
1.在⽂字中使用行向量的形式更加好书写;
2.⽤矩阵乘法实现坐标系转换时,向量左乘矩阵的形式更加方便
3.DirectX使用的是行向量
DirectX是由微软公司创建的多媒体编程接口。由C++编程语言实现。它们旨在使基于Windows的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视 频、3D 动画和丰富⾳音频)的应用程序的理想平台。DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API
为么要使用列向量?
1.等式中使用列向量形式更好
2.线性代数书中使用列向量
3.多本计算机图形学都是使用的列向量
4.OpenGL使用的是列向量
矩阵几何意义
1 矩阵是如何变换成向量的?
⾸先,向量[1,-3 -4]是如果实现位移?
位移[1,0,0],随后位移[0,-3,0],最后位移[0,0,4]
思考
3*3矩阵的9个数字之间有么关系?怎样构建一个矩阵来做这个转换?
思考上⾯2个问题,我们可以看一下使用基向量[1,0,0]、[0,1,0]、[0,0,1]乘以矩阵M的情况:
总结:
基向量[1,0,0]乘以矩阵M,结果是M的第⼀行。后面的2个⽅方程也是一样的规律。
矩阵的每一个都能解释为转换后的基本向量。
二维矩阵的几何意义
三维矩阵的几何意义
总结
1.方阵的行能被解释为坐标系的基向量;
2.为了了将向量从原坐标系变换到新坐标系,用它乘以一个矩阵。
3.从原坐标系到这些基向量定义的新坐标系的变化是一种线性变换。线性变换保持直线和平行线。但角度、长度、面积或体积可能会改变。
4.零向量乘以任何矩阵仍然得到零向量。因此,方阵所代表的线性变换的原点和原坐标系原点一致。变换不包含原点。
5.可以通过想象变换后的坐标系的基向量来想象矩阵。这些基向量在2D中构成L形。在3D构成“三角架”型。⽤一个盒子以及辅助更有助于理解
矩阵和线性变换
变换物体&变换坐标系
变换物体优点
变换物体,是最直接的变化。 ⽐如,渲染一辆车,需要将点从车的物体坐标变换到世界坐标接着到照相机坐标系
将⻋旋转到世界坐标系,在世界坐标系中做碰撞检测,但这需要⼤量的资源。因为 模型有⼤量的顶点数据,计算量偏大。
变换坐标系优点
⽐如,如果此时2台车撞击。 我们知道世界坐标中的撞击位置和撞击路线。想像一下, 世界坐标系被转换到和车的物体坐标系重合的位置,而此时同时被撞击车、车、撞击路线不动。这样就能得到撞击车和撞击路线在车的物体坐标系的坐标。接下来就 可以判断是汽车是否相撞。
可以选择变换物体坐标系、也可以选择变换坐标系。在某一些情况选择合适的即可。2种变换实际上等价的。将物体变换一个量等价于将坐标系变换一个相反的量。
三⻆函数表
旋转—2D
image.png
旋转—3D
网友评论