1

谁能向我解释为什么这不能像我预期的那样工作。

使用四元数将 vec3 [5,0,0] 围绕 z 轴旋转 180 度/Math.PI 弧度。

我认为结果是 [-5,0,0]; 旋转 [5,5,0] 会得到预期的 [-5,-5,0]。

http://jsfiddle.net/s4sqq5L4/

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]
*/
4

0 回答 0