如何通过旋转坐标轴计算坐标系A中的点到坐标系B中的点的变换T
2011-02-23 21:53
453 查看
从坐标系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]
例如,假设我们先按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]
相关文章推荐
- Revit中如何通过API获取对象的位置坐标和旋转角度
- 不同3D坐标系上的点的坐标变换的计算
- 《轻松学会测量坐标计算》 01 测量坐标系与数学坐标系有何区别
- 【OpenCV】仿射变换:坐标计算 旋转 缩放
- 已知经纬度坐标,如何在地方坐标系下的地图上展示轨迹Arcgis for sl
- 解析几何:第一章坐标系与坐标变换:平面直角坐标系、空间直角坐标系及其变换、极坐标系,圆柱面坐标系,球面坐标系
- 五角星五个角在坐标系上面的坐标计算[图]
- 图形学中坐标点和坐标系的变换
- C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法
- 根据旋转矩阵(roational matrix)计算三个坐标轴的旋转角度
- 坐标变换_世界坐标系与用户坐标系之间的转换
- 对点云进行刚体变换时如果同时绕三个坐标轴进行旋转会有问题
- 图表轴刻度的思路,算法: 转载4【Excel是如何自动计算坐标轴刻度】
- js中如何通过身份证号计算出生日期和年龄
- opencv 仿射变换 根据眼睛坐标进行人脸对齐 计算变换后对应坐标
- 旋转坐标的计算
- python(如何计算通过考试的female人数)
- java通过经纬度计算两坐标点之间的距离
- 用opencv计算棋盘格内角点坐标(通过4个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换