3D数学--矩阵汇总

在unity中矩阵的定义和使用

在Unity中我们都是使用4*4的矩阵 ,通过 Matrix4x4.SetRow 和Matrix4x4.SetCoiumn来设置4*4矩阵的某行和某列,通过 Matrix4x4.GetRow 和Matrix4x4.GetCoiumn 获取4*4矩阵的某行和某列,返回一个Vector4类型

矩阵的加减

进行加减的矩阵必须维度相同才可以加减
进行运算的时候,矩阵的个个元素相加减即可
这里写图片描述

矩阵和标量相乘

和向量一样,将这个标量和矩阵的每一个元素进行相乘即可

矩阵和向量相乘

矩阵相乘,必须满足第一个矩阵的列数和第二个矩阵的行数相等,例如 a* 5 的矩阵只能和 5 * b 的矩阵相乘,且结果是 a * b的矩阵
矩阵和向量相乘符合矩阵相乘的规则,因为向量可以看作是一个行或者列为1的矩阵,所以数学中向量分为行向量和列向量. 当一个矩阵的列为1的时候就是行向量,反之就是列向量
行向量与矩阵相乘,将向量每一行的值与矩阵每一列的值进行 点乘,列向量与矩阵相乘,将列向量每一列的值与矩阵的每一行进行 点乘,所以行向量乘完结果还是行向量,列向量乘完结果还是列向量
这里写图片描述

矩阵和矩阵的乘法

规则和向量相乘相同
矩阵相乘比较复杂,新矩阵的每一个值都等于所对应位置的第一个矩阵的行与第二个矩阵的列进行点乘,比如下面这个例子,新矩阵的第一行第一列的值就是第一个矩阵的第一行和第二个矩阵的第一列点乘的结果,第一行第二列就是原矩阵第一个矩阵第一行第二个矩阵第二列点乘结果,以此类推,每一次都是行点乘列的结果.
这里写图片描述
这里写图片描述

特殊矩阵

方块矩阵:行数和列数相等的矩阵
对角元素: 在方块矩阵中,行数和列数相等的叫做对角元素
对角矩阵: 一个矩阵除了对角元素其他元素都为0,这个矩阵就叫做对角矩阵
单位矩阵: 对角元素为1的对角矩阵又被称为单位矩阵
任何矩阵乘以单位矩阵结果都是它本身

逆矩阵: 只有行数和列数相同的方块矩阵才会有,矩阵a乘以矩阵b结果为单位矩阵,那么这个矩阵b就叫做矩阵a的逆矩阵,如果一个矩阵有逆矩阵,那么这个矩阵就是可逆的

在Unity中通过Matrix4x4.identity 获取一个4x4的单位矩阵,通过Matrix4x4.isIdentity判断一个矩阵是否是单位矩阵

转置矩阵(翻折矩阵)

将一个矩阵的行转换成列就是矩阵的转置
一个r*c的矩阵转置后得到一个c*r的矩阵
在Unity中,可以通过Matrix4x4.transpose获取一个矩阵的转置矩阵
这里写图片描述

矩阵的行列式(用来判断逆矩阵使用的)

二阶行列式(2*2矩阵)的行列式计算方法是对角线相乘然后求差值,如果不为0就代表这个矩阵有逆矩阵
三阶行列式的计算方式可以使用代数余子法
代数余子法: 行列式可以按照某一行或者某一列展开成元素与其对应的代数余子式的乘积之和
代数余子法

余子式: 将该值所在的行和列去除后剩余的矩阵叫做余子式
代数余子式: 根据所处位置的正负关系的余子式,保证一正一负
下面演示三阶矩阵的逆矩阵求值法
这里写图片描述
在Unity中可以使用Matrix4x4.inverse来获取一个4x4矩阵的逆矩阵

猜你喜欢

转载自blog.csdn.net/qq_41056203/article/details/81335933
今日推荐