从高等代数里的知识,基向量的角度来看待这个问题,一切就非常简单了。
任意2个坐标系之间的坐标转换:
1.首先可以先考虑坐标原点相同的情形,只差一个平移
2.坐标原点相同时,可以考虑其中1个坐标系b的三个坐标轴在另一个坐标系a下的表达。可以看到坐标系就是3个正交的基向量。
向量v的坐标为a的坐标表达,p,q,r设为坐标系b的三个坐标单位向量在坐标系a下的坐标,则x,y,z就是向量v在坐标系b中的坐标表达,只要求出p,q,r就可以求出x,y,z。
所以具体做法只要求出p,q,r,然后填入矩阵M,就能得到所谓的旋转矩阵了。
v = xp + yq + zr
现在,向量v就被表示成向量p,q,r的 线性变换了,向量p,q,r称作基向量。这里 基向量是笛卡尔坐标轴,但事实上,一个坐标系能用任意3个基向量定义,当然这三个基向量要线性无关(也就是不在同一平面上)。以p、q、r为 行构建一个3 x 3矩阵M,可得到如下矩阵:
用一个向量乘以该矩阵,得到:
下面链接看了开头部分,还不错。
三维旋转矩阵使用算法