四轴绕z轴旋转
据我所知,四元数是一组四个值(WXYZ),用于指定3D空间中的旋转。 对于给定轴(xyz)和角度(α),四元数表示围绕从原点(0,0,0)到(x,y,z)的轴的旋转。 所以围绕z轴(0 0 1)旋转90度应该是:
var quaternion = new Quaternion(Math.PI/2, 0, 0, 1);
但是,famo.us将它变成60度左右......
我也试过var quaternion = new Quaternion(90, 0, 0, 1);
但在这种情况下,famo.us将其转动5度左右
它是框架的错误吗?
我应该如何使用它将它围绕z轴旋转90度?
文档仍然完全没用。
尝试使用这种方法Quaternion.makeFromAngleAndAxis(angle, v)
我发现这是最直接的方法,使其更具可读性和可用性。
示例jsBin
哪里
var degrees = 90;
var angle = Math.PI/180 * degrees;
var v = new Vector(0, 0, 1);
var quaternion = new Quaternion();
quaternion.makeFromAngleAndAxis(angle, v);
...为了获得转换
quaternion.getTransform();
数学课要记住的东西
一个圆圈有360度。 每个度由圆2 * PI * r的单位周长表示。 我们假设我们的半径为1.因此,将总周长除以360,得到一个度数2PI / 360或PI / 180。
综上所述:
刚刚在一篇wiki文章中找到答案:
var angle = Math.PI/2;
var axis = [0,0,1];
var w = Math.cos(.5 * angle);
var x = axis[0] * Math.sin(.5 * angle);
var y = axis[1] * Math.sin(.5 * angle);
var z = axis[2] * Math.sin(.5 * angle);
var quaternion = new Quaternion(w, x, y, z);
尝试这种转换 - Transform.rotateZ(angle);
请参阅 - http://famo.us/docs/reference/pages/0.3/transforms.html
链接地址: http://www.djcxy.com/p/81863.html