转:http://www.cnblogs.com/gin_dl/archive/2012/12/16/2820659.html
假定Sz是一个缩放矩阵,能把z取反,也就是
Sz = 1 0 0
0 1 0
0 0 -1
P = (x,y,z),P' = (x,y,-z) 也就是P 和 P'在不同手性下表示相同位置的一个点 那么 P = Sz * P',反之也成立,也就是 P' = Sz * P
平移变换的变换同上
现在考虑Y轴的旋转,也就是yaw 假定在左手系下, P1 是 P变换后的结果,假定旋转矩阵是 R 也就是 P1 = R * P
那么 P1在右手系下对应位置的点为P1' P1' = Sz * P1 = Sz*(R * P) = Sz * (R * Sz * P') 根据可结合性 可以得到 P1' = (Sz * R * Sz) * P' 所以 如果已知在某手性坐标系下的选择为 R,则在另一个手性下的旋转矩阵为 R' = Sz * R * Sz; 上面的计算相当于将 R的 m02,m12,m20,m21取反
不管使用什么选择顺序,任意一个选择都可以变换为 三个轴向旋转矩阵的乘
也就是说 对饶任意轴的选择 R = Rz*Ry*Rx 根据上面的推导,在另一个手性下的旋转应为 R' = (Sz * Rz * Sz) * (Sz * Ry * Sz) * (Sz * Rx * Sz); 结合性 和 Sz的逆是本身 那么 R' = Sz * R * Sz;
将上面的结果扩展到一般变换
P1 = R*P + T
P1' = Sz*R*Sz*P' + Sz * T;