【随笔】对变换矩阵的有趣理解

【随笔】对变换矩阵的有趣理解

【随笔写的,帮助思考当看到一个变换矩阵时,可以大体把握模型会怎样变化】
用词不严谨,仅供参考,以及附上学习视频的地址,超级好建议看看:线性代数的本质

由线性无关列向量组成的矩阵,可以理解为一种变换,而三个列向量,就是另一个空间(变换的目标空间)下的基,原空间内的点通过与这个矩阵相乘,就可以变换到由矩阵内三个列向量(基)张成的空间内的点(但坐标值还是基于原空间即世界坐标系来定的)。

另一种简单的运算,如下图,在二维空间下,当基由i和j变换为绿色框框和红色框框表示的向量后,原空间内的向量的各个分量与对应的基相乘再相加,即为原向量变换(映射)到新空间后的新向量。

三维也是一样的,即加了第三个基,也就是变换矩阵的第三列,而计算方法也可以参考二维,与常见的矩阵乘法是一样的道理,但要注意,如果矩阵由列向量组成,则应该是变换矩阵乘向量,如果矩阵由行向量组成,则是点乘变换矩阵。

加第4维仅仅是为了加个平移,4x4矩阵左上角的3x3矩阵就是旋转缩放切变的变换矩阵,加第4维不会影响3x3矩阵的效果,第4维仅仅是多了个平移。
在这里插入图片描述
看到一个变换矩阵,类如切变时,如果两个基没有变,而仅一个基有变化,则可在脑内构思一个小方块,然后思考变动的那个基引导方块在对应方向上的切变,而一连串变换的拼接,也可通过观察基的变化来思考模型的变换,比如在某个维度变大,后切变,然后旋转,大体是可以脑补出来的,这样有利于后面给模型写特定的变换方法。

还有多个变换相乘的顺序问题,以向量在矩阵的右边为例,如矩阵ABC代表三个变换,ABCxD代表把ABC这三个变换应用于D向量,可以这样理解,首先,D向量是基于原空间的,先与C相乘,变换到了以C矩阵的三个列向量为基张成的空间内,这个时候,点已经在C的空间内了,再与B相乘,意为在C的空间内的基础上,又变换到了以B矩阵的三个列向量为基张成的空间内,以此类推,因此,先变换C,再变换B,其次变换A,就变成了这样的乘法顺序。

如下图,首先设定矩阵由列向量组成(threejs里就是基于列的所以以基于列举例),下图左侧为变换A,右侧视为变换B,两个变换按照线代乘法来相乘,可视为基于变换A,改变了i,j,k三个基向量(毕竟线代是行x列嘛!),而生成的新矩阵也是线无关的,因此可视为A空间下的三个基向量,如果此时左侧再乘一个变换矩阵C,就等于又把A空间的仨基向量变换到了C空间下,因此!如果矩阵是列向量组成的,则变换矩阵要在向量左边!且应该也能够理解为什么靠近向量的先变换了…其实不考虑靠近不靠近向量的问题,单看一串列向量组成的矩阵相乘,也能看出来是右侧的矩阵被缓缓变换到左侧的空间内…
在这里插入图片描述
还有就是,矩阵乘法有顺序应该也可以理解了,AxB,等于用A变换B,那BxA,等于用B变换A,那指定是不一样。

还有行列式,一个变换矩阵行列式的值,等于原空间基所表示的一小块空间,在经过该变换后,面积(或体积)变化的倍数,而正负号代表是否会翻转,例如如果一个变换矩阵求行列式的值=-3,则对一个模型应用该变换,模型近似于扩大3倍,且进行了翻转。

行列式的值为0时,等于降维打击(bu),等于降低了一个维度,例如三维被压缩到了二维,二维被压缩到了一条线,也即出现了线性相关情况。

逆矩阵就是逆变换,实际上也是一个变换矩阵,它的作用是再变换回原空间内,比如A让向量旋转30度,A的逆会让旋转了30度的点再转回去。

还有,如果一个变换对向量进行了降维打击,那么这个变换是没有逆变换的,也就是回不去了…

2行x3列矩阵,3列代表3个向量张成的空间,2行代表每个点都由2个数组成,这样的一个变换会将3维空间映射到2维平面内,而3x2矩阵,2列代表一个平面,3行代表用3个数来表示点,则这将会把一个平面映射到一个空间内,这两种变换在threejs里应该是并没有涉及到,这里仅做了解。

点积,两个向量相乘,如果将其中一个向量改成横着的,那就是一个行向量x一个列向量,可以理解为给列向量做了一个1维的变换。(存疑,点积理解还不够深入)

还有就是,点积的正负可以代表两向量夹角是否大于90度,在游戏中,可以用此方法来判断面向是否一致,还是背对。

叉积得出的是垂直于两个向量的一个向量,可以理解为法向量,而叉积的模是下图四边形的面积,如下图:
在这里插入图片描述
如果w在v右侧,则w乘以v的叉积的模是正的,v乘以w的叉积的模是负的,而叉积的模的绝对值,等于这个黄色区域的面积。

叉积主要用来求法向量。

随笔…随笔…想到再补充

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值