3D数学基础:图形与游戏开发__向量的矩阵转换
本来是想坚持写读书笔记,至少每两周一篇博客的,看来又失败了。上次写博客的时间是12月7日,变成了俩月一篇,蛋疼额,看来我还是没有我想象中的那么有毅力!这个要改!
好啦,先不说废话啦,还是进入正题吧!
--------------------------------------------------------------
这段时间开始看《3D数学基础:图形与游戏开发》这本书,突然弄明白了关于 向量的矩阵转换的方式,所以先记录下来,有什么不对的地方,还请大家帮忙指正,共同进步!
a·M 则表示向量 a 进行了矩阵M 的变换,以前我一直很疑惑这中间到底进行了什么变换呢? 产生了什么效果呢?
我们知道, 每个向量我们都可以分解成基向量相加的形式即:
a = x·[1 0 0] + y·[0 1 0] + z·[0 0 1]
然后 我们再看前面的变换公式
a·M = [x·px + y·qx + z·rx x·py + y·qy + z·ry x·pz + y·qz + z·rz]
= x·[px py pz] + y·[qx qy qz] + z·[rx ry rz]
看着上面的公式,是不是有种似曾相识的感觉?我们对比前面的向量 a 的分解公式,形式完全一样,不是么?
到这里,我们可以发现了这次矩阵变换的主要内容了,就是把对应于三个方向的 基向量 变换成了 矩阵的 p、q、r三个向量!!
比如 p = [2 0 0] 则表示在x方向上放大2倍
P = [2 2 0] 则表示x方向向y方向偏转45°并且放大2·2^0.5倍!!
通过这些即可对一些向量进行 旋转 缩放了!!