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. Но на самом деле результат показал, что плоскость была повернута по часовой стрелке.
Может кто-то указать, что я неправильно понимаю?