定向点(XYZ +偏航/俯仰/滚动)帧间转换

时间:2019-01-31 11:11:36

标签: math matrix 3d

我有一个3D定向点(XYZ +偏航/俯仰/滚动)。可以说这是基于“用户框架1”(UF1)(该框架是相对于世界框架(WF)定义的。)。

我还有另一个“用户框架”,我们称它为“用户框架2”(UF2),它也是参照世界框架定义的。

如何将采取我的3D定向的点(6个坐标;位置3 + 3旋转)?从一帧到另一

例如;由于所有用户帧都与世界坐标系,我将如何计算从UF1(变换)我的3D导向点WF?或反之亦然或任意组合? (UF1-> WF,WF-> UF2等)

将所得的点必须具有6个坐标(位置3 + 3旋转)相对于目标帧。

PS:我主要在C#中工作,因此,如果可能的话,请使用代码示例或伪代码来实现。

1 个答案:

答案 0 :(得分:0)

您正在寻找的是从一个坐标系到另一个坐标系的过渡矩阵。

这是一个4x4矩阵,完全由3个平移参数和2个坐标系之间的6个比例角确定。

这9个系数取决于旋转角度(欧拉角或四元数取决于您使用的是什么)。请注意,如果您使用的是欧拉角,则顺序很重要:如果先绕X轴然后绕Y轴然后绕Z轴旋转,则旋转矢量(rx,ry,rz)不会描述相同的旋转或者,如果您先绕过Z,然后是Y,然后是X。

enter image description here

我建议您阅读以下内容,它将帮助您计算矩阵: http://brainvoyager.com/bv/doc/UsersGuide/CoordsAndTransforms/SpatialTransformationMatrices.html

请注意,所有这些操作均使用同质坐标。