Local Space To World Space

In fact, all you need is a matrix.

设:现有一个坐标系A,原点在 ,其x轴、y轴和z轴在世界坐标系下的表示分别为。显然,作为一个坐标系,其x轴、y轴和z轴是互相垂直的。

假设现在有一个在世界坐标系中的向量,它在上述坐标系A的表示应该是怎样的呢?

现在,我们需要在坐标系A的语境下来表示这个向量。
对于坐标系A来说,世界坐标系下的向量 正是坐标系A下的x轴,为了简单,可以将它假定为一个单位向量,即坐标系A下的
假设存在一个矩阵M,这个矩阵有三个特点:
能够与世界坐标系下的 相乘得到坐标系A下的,即坐标系A下的x轴
能够与世界坐标系下的 相乘得到坐标系A下的,即坐标系A下的y轴
能够与世界坐标系下的相乘得到坐标系A下的,即坐标系A下的z轴
显然该矩阵M=
世界坐标系下的任何一个向量,在转为列矩阵并与矩阵M相乘之后,就得到了其在坐标系A下的表示。
能够发现,矩阵M的转置矩阵可以将世界坐标系的x轴、y轴和z轴转为坐标系A下的x轴,y轴和z轴。因此,的实际作用是将世界坐标系转换成坐标系A。
现在,我们使用只是转换了三个坐标轴,也就是三个向量,由于向量是没有平移操作的,所以3*3矩阵就可以完成这一转换了。而对于坐标原点,则需要进行平移操作。
众所周知,表示三维空间的平移需要四维矩阵,即齐次坐标矩阵。如果要将转换为坐标系A下的原点,则需要的矩阵应该为
所以,将世界坐标系转换为坐标系A的矩阵为
由线性代数知识可以知道,一个正交矩阵的逆矩阵是它的转置矩阵,故从坐标系A到世界坐标系的变换矩阵为