任何人都可以向我解释为什么这并不像我期望的那样有效。
使用四元数围绕z轴旋转vec3 [5,0,0] 180degree / Math.PI弧度。
我认为结果会是[-5,0,0]; 旋转[5,5,0]得到预期的[-5,-5,0]。
var q = quat.create();
quat.rotateZ(q, q, Math.PI);
console.log(q);
var v = vec3.fromValues(5, 0, 0);
vec3.transformQuat(v, v, q);
console.log(v);
/*
[0, 0, 1, 6.123234262925839e-17]
[-5, 6.123233998228043e-16, 0]
*/
var q2 = quat.create();
quat.rotateZ(q2, q2, Math.PI);
console.log(q2);
var v2 = vec3.fromValues(5, 5, 0);
vec3.transformQuat(v2, v2, q2);
console.log(v2);
/*
[0, 0, 1, 6.123234262925839e-17]
[-5, -5, 0]
*/