跳转到主要内容
Computer Graphics Sep 5, 2022 3 tags

2.2矩阵计算

2.2矩阵计算

cover

线性方程

什么是线性方程?

线性方程,顾名思义,呈线性的方程,一条线下来,比如我们中学时期学过的一次方程就是一个线性方程,线性方程具有可加性,比例性,即常数倍k,用数学函数表达方式就是

图示

什么是线性空间

直线变换后依然是直线,并且等比坐标原点保持不变

图示

什么是非线性空间

空间扭曲,不是等距坐标原点有位移

图示

什么是矩阵

一个 m x n 的矩阵是由m行n列元素排列成的矩形阵列

图示

矩阵的定义:由 m x n个数

图示

排成的 m 行 n 列的数表称为 m 行 n 列矩阵,简称 m x n 矩阵。为表示这些数字是一个整体,总是加一个方括号

图示

特殊的矩阵

方阵

单位矩阵 I

零矩阵 O

矩阵的加减法

两个矩阵的行数,列数都相等时,就称他们是同型矩阵

图示

矩阵的加法即对应位置相加,只有同型矩阵再能相加

图示

矩阵的加法满足交换律和结合律

矩阵的减法

矩阵的数乘

将一个常数 k 与 矩阵A的成绩记做 kA

图示

k与矩阵A的么个数进行相乘

图示

矩阵的数乘的几何意义是空间的缩放

矩阵与矩阵之间的乘法

首先并不是所有矩阵都能相乘,矩阵相乘需要满足一定的合法性

m * n 的矩阵只能与 n * p 的矩阵相乘

相乘后的矩阵大小为 m * p

图示

图示

一个矩阵叉乘另一个矩阵,得到的还是一个矩阵,但是这个矩阵在图形学上被称作变换矩阵

即 一个图形 进行 移动 + 旋转 + 缩放得到的是这个图形的变换矩阵,到最后这个样子需要将图形的原矩阵乘以变换矩阵

图示

一个矩阵与一个列向量相乘,得到的是我们想要的最后结果,即这个顶点变换之后的坐标

在我们平时的实际开发中,我们不可能只单单对一个物体进行单个变换(移动,旋转,缩放),我们开始着手一个项目的时候往往是图形的复合变换,即包括图形的移动,旋转,缩放 在复合变换中我们采用的是列向量左乘

图示

矩阵相乘的一个好处,我们可以除了最右边的向量不进行计算,先把左边的旋转,移动,缩放等先计算得到一个最终的变换矩阵,这时我们再拿最右边的向量与这个最终变换矩阵相乘得到最终结果(动图我就不贴了,如果想验证可以自己写几个例子进行计算,看看先得到最终变换矩阵再与向量相乘的结果与向量逐一左乘的最终结果是否一致)

图示

日常开发中常见的矩阵

图示

位移矩阵为什么是一个 3x3矩阵?答案是位移矩阵不是线性变换,是仿射变换,为什么是仿射变换?前面也说过线性变换原点是不会发生变化的,在位移变换中,原点已经发生了变化,所以我们需要多加一个维度

图示

以上是二维空间的变换,下面是在三维空间中的坐标变换

图示

为什么缩放矩阵也多了一个维度?在实际开发中我们总是面临着多次变换合成的复合变化,所以我们需要给缩放矩阵也加一个维度方便与移动矩阵进行相乘

矩阵的转置

把矩阵 A 的行换成同序数的列,该操作称为矩阵的转置运算。

转置运算后可以得到一个新矩阵,该矩阵称为 A 的转置矩阵,记作A^T

A = a_(ij),A^T = a_(ij)

图示

矩阵存储数据是以行优先来存储

逆矩阵

矩阵与它的逆矩阵相乘,得到单位矩阵,常用作矩阵变换后再次矩阵变换回原来的的初始位置

图示

逆矩阵的计算,首先先进行几次初等变化,将矩阵变换为单位矩阵

图示

矩阵计算公式

矩阵加减法,对矩阵的各个位置上进行加减,但是有前提条件,是同阶矩阵才能进行计算

图示

矩阵常数相乘,常数与该矩阵每一项相乘即可

图示

矩阵与矩阵之间相乘,所有的矩阵不是都能相乘,需要前提条件

即要求前者矩阵为 m x n 矩阵,后者要求 n x p 矩阵,两者相乘之后得到 m x p 矩阵

图示

Related Articles

继续阅读