左右手坐标系转换

来源:互联网 发布:四川大学商学院 知乎 编辑:程序博客网 时间:2024/04/28 23:18


原文: 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;

0 0
原创粉丝点击