首页 > 代码库 > 坐标系变换

坐标系变换

1、simple question,一个二维向量在平面直角坐标系下坐标为[a,b]’,实际意义就是这个向量在x轴上投影长度为a,在y轴上投影长度为b。这是从向量分解的角度来说的。从向量合成的角度来说,就是这个向量由两个正交的向量相加而来,其中一个向量为a*x_hat,另外一个向量为b*y_hat,其中x_hat与y_hat是沿x轴正方向与y轴正方向的单位向量。多维向量同理。

 

2、fact,同一个向量在不同的坐标系之下,坐标通常不一样,除非这两个不同的坐标系对应的轴的取向一致,也就是说两个坐标系之间只有平移,没有旋转。

 

3、concept,如何在坐标系A下表示坐标系B的轴向,或者说两个坐标系之间的旋转变换矩阵。表示一个坐标系的轴向,就是表示这个坐标系的各个轴。以三维坐标系为例,坐标系B的x轴正方向单位向量,y轴正方向单位向量,z轴正方向单位向量在坐标系A下的表示为3个三维列向量,将这个三维列向量通过行stack的方式拼成一个3*3的矩阵,这个矩阵就是坐标系A到坐标系B的旋转变换矩阵R(AB)。R的元素其实就是两个坐标系各个轴正方向单位向量之间的内积。

 

4、fact,R(AB)和R(BA)互为逆矩阵,同时R(AB)与R(BA)互为转置。

 

5、单纯的概念可能没啥用,具体来说R(AB)一个最常用的应用就是,同一个向量如何在两个不同的坐标系之间进行转换坐标。假设向量k在坐标系A下坐标为P(A)=(a,b,c)‘,在坐标系B下坐标为P(B)=(m,n,l)’,这两个坐标如何通过R(AB)联系起来呢?根据1,我们来看看a的含义。a等于向量k在坐标系A的x轴的投影。而根据定义,向量k等于三个向量相加,这三个向量分别为m*xB_hat,n*yB_hat,l*zB_hat,所以a等于前述的三个向量在坐标系A的x轴的投影之和。m*xB_hat在坐标系A的x轴的投影就是m*xB_hat*xA_hat,同理可知a=m*xB_hat*xA_hat+n*yB_hat*xA_hat+l*zB_hat*xA_hat,这正是R(AB)的第一行与(m,n,l)’的乘积。于是,最后可以得到一个简单的公式P(A)=R(AB)*P(B)

坐标系变换