Как преобразовать углы Эйлера в векторы вперед, вверх, вправо

Мне нужна функция, которая с учетом Yaw, Pitch и Roll может выдавать векторы Front (или Looking At), Right и Up в "мировые координаты ".

В моем конкретном мировом пространстве, начиная с начала координат (0,0,0), X положителен влево, Z положительно удаляется от зрителя / источника, а Y положительно идет вверх.

Например, учитывая ... (углы в градусах)

yaw = 0, pitch = 0, roll = 0, ожидаемый результат:

передний = (0.0,0.0,1.0)право = (-1,0,0,0,0,0)вверх = (0,0,1,0,0,0)

yaw = 90, pitch = 0, roll = 0, ожидаемый результат:

передний = (1.0,0.0,0.0)правый = (0,0,0,0,1,0)вверх = (0,0,1,0,0,0)

yaw = 0, pitch = 90, roll = 0, ожидаемый результат:

передний = (0.0,1.0,0.0)право = (-1,0,0,0,0,0)вверх = (0,0,0,0, -1,0)

yaw = 0, pitch = 0, roll = 90, ожидаемый результат:

передний = (0.0,0.0,1.0)право = (0,0,1,0,0,0)вверх = (1,0,0,0,0,0)

Язык яЯ работаю в C ++, и я с радостью воспользуюсь glm для решения этой проблемы, если это имеет смысл. Если я смогу добраться туда через кватернионяЯ в порядке с этим решением, так как яМы нашли другие учебники, которые описывают, как получить кватернион из углов Эйлера.

Ответы на вопрос(1)

Ваш ответ на вопрос