0

我正在尝试围绕 UrhoSharp 中的一个点旋转一个对象。我已经学习了很多关于四元数如何工作的知识,但他的 node.RotateAround 方法似乎并不遵循规则。

当 w = 0 或 PI 时,我似乎得到了正确的旋转。但是,如果我使用任何其他数字,我似乎无法知道对象将以哪种方式旋转。

float w = 0;//or PI
node.RotateAround(point, new Quaternion(Vector3.Up, w) , transformSpace.World);

如果有人对使用四元数有任何了解,我将不胜感激。

4

1 回答 1

0

我认为,对于使用该构造函数,您需要使用四元数指数映射:

 var q = new Quaternion(Math.Sin(w/2)*Vector3.Up, Math.Cos(w/2));

但也许你想要做的是从轴和角度构造:

// note that in this constructor "w" is in degrees, not radians
var q = Quaternion.FromAxisAngle(Vector3.Up, w/2);
于 2019-07-02T18:36:53.063 回答