左右手坐标系下三维位姿(旋转、平移)的转换

太长不看

假设右(或左)手坐标系下的旋转矩阵和平移向量分别为和,左(或右)手坐标系下分别为和,假设,则有

推导

右手食指为Y轴正方向,中指为Z轴正方向,大拇指为X轴正方向,这样的坐标系为右手坐标系。右手换成左手则为左手坐标系。将一个坐标系的一个轴取反向,则改变了手性;两个轴取反向,则等价于绕第三轴旋转180度;将三个轴都取反向,则是前面两者的叠加,改变手性+旋转。

左右手坐标系的转换在图形学开发中经常出现,例如OpenGL使用右手坐标系,Unity使用左手坐标系。下文所述右手坐标系即是OpenGL坐标系,左手坐标系即是Unity坐标系。

左右手坐标系示意图

左手坐标系下有一个点,则在右手坐标系下,该点应该表示为。

假设空间中有变换矩阵

则左右手坐标系下点的变换即可用来表示,即

假设空间中有旋转矩阵和平移向量,世界坐标系下有点,对应相机坐标系下有点,则有

假设、、、均定义在右手坐标系下,、、、分别为上述变量在左手坐标系下的定义,即

左右手坐标系下位置的变换我们已经知道,即,则有
{P_c}^{’} = {R}^{’} \cdot {P_w}^{’} + {T}^{’} \rightarrow \\\\ S \cdot {P_c} = {R}^{’} \cdot S \cdot {P_w} + {T}^{’} \rightarrow \\\\ {P_c} = {S}^{-1} \cdot {R}^{’} \cdot S \cdot {P_w} + {S}^{-1} \cdot {T}^{’}

已知右手坐标系下,故有左右手坐标系下旋转矩阵和平移向量的的转换

以上

你可能感兴趣的:(左右手坐标系下三维位姿(旋转、平移)的转换)