これが期待どおりに機能しない理由を誰かに説明してもらえますか。
クォータニオンを使用して、vec3 [5,0,0] 180 度/Math.PI ラジアンを z 軸を中心に回転させます。
結果は [-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]
*/