我一直在 UrhoSharp 中使用四元数来做一些 3D 建模工作。我对以下代码感到困惑:
using Urho;
var q = Quaternion.FromAxisAngle(Vector3.UnitY, +45f);
var q2 = new Quaternion(0f, +45f, 0f);
var outputAngle = q.ToEulerAngles();
var outputAngle2 = q2.ToEulerAngles();
Console.WriteLine(outputAngle); // (0, -45, 0)
Console.WriteLine(outputAngle2); // (0, -45, 0)
我无法理解的是,当我创建围绕 Y 轴旋转 +45 度的四元数时,欧拉角表示如何显示它是 -45 度。
请注意,我来自非游戏背景,并且是第一次处理向量/四元数。所以我对四元数或欧拉旋转的数学没有足够好的把握。我已经阅读了几篇文章,但仍然无法理解为什么欧拉表示中的角度会反转。