矩阵变换向量的解释

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43284188/article/details/97134824

这篇文章主要是记录自己学习的过程,文章内容参考自《3D数学基础:图形与游戏开发》,如有不对的地方,烦请指出,交流进行更改。

矩阵在图形学中几乎无处不在,投影矩阵、视图矩阵等这一系列包含矩阵的名词几乎耳熟能详。一个在物体坐标系的坐标乘以model矩阵后就变换到了世界坐标系,一个在世界坐标系的坐标乘以view矩阵就变换到了摄像机坐标系,这些变换看起来很合理。但是追根溯源,为什么乘以一个矩阵就可以进行坐标系的变换呢?

这篇文章主要对上述问题进行介绍和说明。理解了矩阵可以对坐标进行变换的原因后,将对矩阵的意义有更深入的认识和了解。

这里用行向量来表示坐标,pqr分别用来表示为指向x,y,z轴正方向的单位向量。
现在有一个坐标点A(1,2,3),用向量表示为A=[1 2 3]。
其中,向量A可以分解成如下形式:A=1[1 0 0]+2[0 1 0]+3[0 0 1]=1p+2q+3r

而等式1p+2q+3r可以解释为在x轴方向位移1个单位,y轴方向位移2个单位,z轴方向位移3个单位。
进一步将等式1p+2q+3r进行变形可以得到:
1p+2q+3r=
[ 1 p x + 2 q x + 3 r x 1 p y + 2 q y + 3 r y 1 p z + 2 q z + 3 r z ] = [ 1 2 3 ] [ p x p y p z q x q y q z r x r y r z ] \left[ \begin{matrix} 1px+2qx+3rx & 1py+2qy+3ry & 1pz+2qz+3rz \\ \end{matrix} \right] = \left[ \begin{matrix} 1 & 2 & 3 \\ \end{matrix} \right] \left[ \begin{matrix} px & py & pz \\ qx & qy & qz \\ rx & ry & rz \end{matrix} \right]
可以看到最后得到结果是向量A与一个矩阵相乘,而仔细观察这个矩阵的形式可以发现,矩阵的行正好为坐标系的基向量,所以我们可以把矩阵解释为基向量的一个集合。这个矩阵如下所示:

[ p x p y p z q x q y q z r x r y r z ] \left[ \begin{matrix} px & py & pz \\ qx & qy & qz \\ rx & ry & rz \end{matrix} \right]
因此将向量与不同的矩阵进行相乘,可以看做是将向量切换到不同基向量的坐标系中。例如:
[ 1 2 3 ] [ 1 0 0 0 2 0 0 0 1 ] = [ 1 4 3 ] \left[ \begin{matrix} 1 & 2 & 3 \\ \end{matrix} \right] \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{matrix} \right] = \left[ \begin{matrix} 1 & 4 & 3 \\ \end{matrix} \right]
上述等式可以解释为将点A转换到了x、z轴基向量分别为(1,0,0)、(0,0,1),而y轴基向量为(0,2,0)的坐标系β中,最后在坐标系β中的坐标为(1,4,3)。其中点A的初始位置(1,2,3)是在x、y、z轴基向量分别为(1,0,0)、(0,1,0)、(0,0,1)的坐标系中。

猜你喜欢

转载自blog.csdn.net/weixin_43284188/article/details/97134824