旋转变换的过程:
Mat是一个3*N的矩阵,每一列代表一个点在参考系1中的坐标。
Mat在参考系a中进行旋转变换到Mat_new :Mat_new=R*Mat
Mat_new的每一列为旋转变换后每一点在参考系a中的坐标。
旋转变换等价于参考系的基变换。从基变换的角度重新描述上述过程:
Mat是一个3*N的矩阵,每一列代表一个点在参考系a中的坐标。
现将参考系a转变为参考系b。在参考系b中,Mat中的坐标变更为Mat_new。
Mat_new的每一列为对应点在参考系b中的坐标。
参考系b的基在参考系a中表示为e1, e2, e3,均以1*3的列向量表示。
[e1, e2, e3]组成一个3*3的矩阵。
e1数值上也可以表示参考系b中坐标值为(1; 0; 0)的点在参考系a中的坐标。
故可以将[e1, e2, e3]直接写出。注意右手直角系须满足e3 = cross(e1,e2)。
一点在参考系b中的坐标Pb=(xb; yb; zb)与其在参考系a中的坐标Pa=(xa; ya; za)之间的关系为
Pa = xb*e1+yb*e2+zb*e3 (基向量表示法)。
写成矩阵形式:Pa = [e1, e2, e3]*Pb
推广到点集:Mat = [e1, e2, e3]*Mat_new, Mat_new = [e1, e2, e3]\Mat
结论:R = [e1, e2, e3]'