矩阵变换及其数学原理

矩阵变换及其数学原理

 

 

引子

推荐这篇文章线性代数的本质,这篇文章挺不错的,揭示了矩阵和向量的内涵。首先概要性的提一下

  1. 向量刻画的是线性空间中的对象。
  2. 矩阵刻画的是向量在线性空间中的运动(变换,跃迁),相似矩阵本质上就是同一个线性变换的不同的描述。
  3. 在一个线性空间中,选定了一组基,对于任何一个线性变化都可以用一个确定的矩阵来描述
  4. 矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述,作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。
  5. 当我们谈到向量时,一定要指定它所在的坐标系才有意义,比如向量b=(1,2,3)实际上指的是在单位坐标系I下有一个向量的度量为b。
  6. 就可以理解Ma=b就可以看成Ma=Ib,就是说在坐标系M中度量出来的向量a和在坐标系I里面度量出来的b实际上就是同一个向量。
  7. 对于矩阵而言,他表示出来的那个坐标系也是由一组基(向量)组成的,同样存在这组基实在哪个坐标系下度量的问题。对于矩阵M,将其理解成IM,即M中的那组向量是在I坐标系中得出的。
  8. MxN本质是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。
  9. 对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。

因此我们来理解这样一个式子,ACb,AC为矩阵,b为一个向量

  1. b是一个向量,他是在I坐标系下度量的,a = Cb也就是在I坐标系下将向量b变换到向量b,d=ACb=Aa的含义就是继续在I坐标系下将向量a变换到向量d。即在同一个坐标系I下面进行了两次变换操作。
  2. 另一种理解方式是ACb=IACb,那么IAC三个矩阵相乘就表示了坐标系的变换,在I坐标系中度量处新的坐标系IA,再在IA坐标系下度量出IAC,然后这里最终的坐标系中的向量b和在1中在I坐标系中经过两次变换得到的向量是同一个向量。

上面的两种理解方式也揭示了对向量的变换和对坐标系的变换是等价的,这一点也可以通过后面旋转变换的图示中看出来。

各种变换

平移矩阵

 

 

缩放矩阵

 

平移矩阵和缩放矩阵很容易理解,并且从矩阵形式我们也可以看到为什么用四维的向量表示一个顶点了,除了w分量用来做透视除法以外,另一个作用不也正好是为了把平移整合进来吗,都做乘法而不做加法。在数学上也就是将三维空间的坐标表示成其齐次形式.

 

旋转变换

旋转变换相对来说较为复杂,对绕x、y或z轴旋转的情况比较好理解。 
这里写图片描述 
以绕z轴旋转为例 

于是 

 

写成矩阵形式为 

 


绕任意轴旋转的旋转矩阵

 

这里写图片描述

同理,前面学到的正交投影矩阵,透视矩阵以及摄像机矩阵,本质上和上面的变换都是一样的。

前面可以看到一般传入渲染管线的是一个由摄像机矩阵,投影矩阵,变换矩阵相乘得到的总的变换矩阵,

在顶点着色器中一般是这样的形式

gl_Position = uMVPMatrix * vec4(aPosition,1);
  • 1

上面的代码中的变量uMVPMatrix表示了模型(M)、视图(V)、投影(P)三中变换综合, 

MVPMatrix=PrijectionMatrix∗ViewMatrix∗ModelMatrix∗vertexMVPMatrix=PrijectionMatrix∗ViewMatrix∗ModelMatrix∗vertex

注意到矩阵乘法的顺序,对每个点所做的变换是有顺序的,对每个点先进行模型变换(平移缩放旋转)、再进行视图变换(摄像机视角)再进行投影变换,这三个变换顺序是不可变得,因为改变顺序最终看到的效果都是不一样的。

 

对每个点所做的综合变换本质上就是对这个点进行矩阵相乘,然而就我们传入的是最终的综合变换矩阵而言,刚才的理解不是特别准确,换个思路理解成综合变换矩阵就是对坐标系的变换会更好,因为毕竟我们是一次性将这个相乘后的综合矩阵传进去的。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无迹卡尔曼滤波(Unscented Kalman Filter, UKF)是一种用于处理随机过程和非线性系统的滤波算法,它是卡尔曼滤波的改进版本,尤其适用于高维状态估计和复杂的非线性系统。其工作原理基于蒙特卡洛方法,结合了卡尔曼滤波的数结构。 UKF的工作原理主要包括以下几个步骤: 1. **预测步骤**:利用系统动态模型预测当前状态的概率分布,同时计算预测后的协方差矩阵。 2. **增广步骤**:将预测的状态和协方差扩展成一组“信息粒子”,这些粒子围绕着预测的均值分布。 3. **不平凡变换**:对每个粒子应用系统模型和测量模型的非线性变换,模拟真实世界中的运动。 4. **抽样**:从经过不平凡变换的信息粒子中重新采样,得到一组新的粒子。 5. **减缩步骤**:根据观测数据重新计算这些粒子的均值和协方差,得到更新后的状态估计。 优点: - **处理非线性系统**:UKF不需要线性化系统模型,因此对于非线性系统更适用。 - **避免尺度灾难**:相比于卡尔曼滤波,UKF能够更好地处理系统中的尺度差异,提高估计精度。 - **高维状态估计**:在高维状态空间中,UKF的表现优于EKF(Extended Kalman Filter),因为它能保持较高的粒子质量。 缺点: - **计算量**:相比于卡尔曼滤波,UKF需要更多的运算,尤其是在高维问题上,计算成本较高。 - **参数选择**:UKF有一些调整参数,如σ因子,选择不当可能影响滤波性能。 - **解释性较差**:由于UKF使用的是抽样的方法,对于一些需要直观理解的问题,不如卡尔曼滤波清晰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值