0

我一直在 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 度。

请注意,我来自非游戏背景,并且是第一次处理向量/四元数。所以我对四元数或欧拉旋转的数学没有足够好的把握。我已经阅读了几篇文章,但仍然无法理解为什么欧拉表示中的角度会反转。

4

1 回答 1

0

欧拉角可以以两种不同的方式表示旋转,从欧拉转换为四元数(在构造函数中)并返回可能会产生问题。这里给出了一个类似的问题:Euler angle to Quaternion then Quaternion to Euler angle

于 2018-01-10T20:35:48.450 回答