我有一个3D定向点(XYZ +偏航/俯仰/滚动)。可以说这是基于“用户框架1”(UF1)(该框架是相对于世界框架(WF)定义的。)。
我还有另一个“用户框架”,我们称它为“用户框架2”(UF2),它也是参照世界框架定义的。
如何将采取我的3D定向的点(6个坐标;位置3 + 3旋转)?从一帧到另一
例如;由于所有用户帧都与世界坐标系,我将如何计算从UF1(变换)我的3D导向点WF?或反之亦然或任意组合? (UF1-> WF,WF-> UF2等)
将所得的点必须具有6个坐标(位置3 + 3旋转)相对于目标帧。
PS:我主要在C#中工作,因此,如果可能的话,请使用代码示例或伪代码来实现。
答案 0 :(得分:0)
您正在寻找的是从一个坐标系到另一个坐标系的过渡矩阵。
这是一个4x4矩阵,完全由3个平移参数和2个坐标系之间的6个比例角确定。
这9个系数取决于旋转角度(欧拉角或四元数取决于您使用的是什么)。请注意,如果您使用的是欧拉角,则顺序很重要:如果先绕X轴然后绕Y轴然后绕Z轴旋转,则旋转矢量(rx,ry,rz)不会描述相同的旋转或者,如果您先绕过Z,然后是Y,然后是X。
我建议您阅读以下内容,它将帮助您计算矩阵: http://brainvoyager.com/bv/doc/UsersGuide/CoordsAndTransforms/SpatialTransformationMatrices.html
请注意,所有这些操作均使用同质坐标。