在新参考系中表达旋转矩阵

时间:2019-07-16 02:12:49

标签: opengl rotation linear-algebra

我有一个旋转矩阵,其中右为+ x,上为+ y,正向为-z。这是标准的OpenGL主轴。

我需要在一个新的坐标系中表示此旋转矩阵,向下坐标为+ y,正向坐标为+ z。因此,新系统的y和z轴已翻转。

我目前的策略是使用此公式。

rotation a = get_rotation();
rotation b = rotation(
    1,  0,  0,
    0, -1,  0,
    0,  0, -1
);

a = b * a * transpose(b);

尽管这似乎会产生不正确的结果。

将旋转矩阵从一个参考系转换为另一个参考系的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

a = b * a * transpose(b)中乘以btranspose(b)将相互抵消。即中心矩阵元素将乘以(-1)两次。

您是否尝试过a = b * a