如何通过旋转坐标轴计算坐标系A中的点到坐标系B中的点的变换T

来源:互联网 发布:java文件的dos编译命令 编辑:程序博客网 时间:2024/04/30 01:29

从坐标系B开始,旋转坐标系B的三个坐标轴,直到坐标系B的三个坐标轴与坐标系A平行,然后再沿着旋转后的坐标系B做平移,直到坐标系B与坐标系平行,而后将每一步旋转和平移的矩阵相乘即可

例如,假设我们先按Y-X-Z的顺序对坐标系B旋转,直至坐标系B与坐标系A的坐标轴平行,分别转过角度y、x、z,而后再沿旋转后的坐标系B平移tx、ty、tz,直至坐标系B与坐标系A重合,则坐标系A中的点到坐标系B中的点的变换可以表示为T=Ry*Rx*Rz*Translation,注意相乘的顺序是右乘。其中的Rx、Ry、Rz、Translation分别为
Rx = [1 0      0       0;
      0 cos(x) -sin(x) 0;
      0 sin(x) cos(x)  0;
      0 0      0       1]
Ry = [cos(y)  0 sin(y) 0;
      0       1 0      0
      -sin(y) 0 cos(y) 0;
      0       0 0      1]
Rz = [cos(z) -sin(z) 0 0;
      sin(z) cos(z)  0 0;
      0      0       1 0;
      0      0       0 1]
Translation = [1 0 0 tx;
               0 1 0 ty;
               0 0 1 tz;
               0 0 0 1]

原创粉丝点击