GLKQuaternionMakeWithAngleAndVector3Axis неправильно обрабатывает положительный угол как по часовой стрелке

Я использую кватернион GLKit, чтобы повернуть единичный вектор на 90 градусов вокруг оси z. Вот мой код:

let q = GLKQuaternionMakeWithAngleAndVector3Axis(Float(M_PI_2), GLKVector3Make(0,0,-1))
let result = GLKQuaternionRotateVector3(q, GLKVector3Make(1,0,0))

Но результат показывает вектор (0, -1, 0), где я ожидал (0, 1, 0). В соответствии с GLKit Framework Reference, объясняется аргумент входного угла для GLKQuaternionMakeWithAngleAndVector3Axis:

радианы: угол поворота в радианах (положительный угол против часовой стрелки).

Поэтому я ожидал, что мой код поворачивает плоскость xy на 90 градусов против часовой стрелки, где я смотрю вниз по плоскости xy из положения, где z > 0. Но на самом деле результат показал, что плоскость была повернута по часовой стрелке.

Может кто-то указать, что я неправильно понимаю?

0 ответов

Другие вопросы по тегам