我正在尝试围绕UrhoSharp中的点旋转对象。我已经对四元数的工作方式做了很多学习,但是他使用了node.RotateAround方法,似乎并没有遵循规则。
当w = 0或PI时,我似乎得到正确的旋转。但是,如果使用任何其他数字,我似乎无法知道对象将以哪种方式旋转。
float w = 0;//or PI
node.RotateAround(point, new Quaternion(Vector3.Up, w) , transformSpace.World);
如果有人对四元数有任何看法,我将不胜感激。
答案 0 :(得分: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);