我一直在UrhoSharp的Quaternions工作,做一些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度。
请注意,我来自非游戏背景并且第一次处理矢量/四元数。所以我对Quaternions或Euler Rotations的数学没有足够好的处理能力。我已经阅读了几篇帖子,但仍然无法理解为什么角度在欧拉表示中反转。
答案 0 :(得分:0)
欧拉角可以用两种不同的方式表示旋转,从欧拉转换为四元数(在构造函数中),然后返回会产生问题。这里给出了类似的问题:Euler angle to Quaternion then Quaternion to Euler angle