Спасибо всем! Я адцки затупил =)))
Если кому будет полезно, матрица поворота по всем осям сразу:
this.rotate = function(u,v,w)
{
var cu = Math.cos(u);
var su = Math.sin(u);
var cv = Math.cos(v);
var sv = Math.sin(v);
var cw = Math.cos(w);
var sw = Math.sin(w);
_a[0][0]= cu*cv; _a[1][0]= cu*sv*sw - su*cw; _a[2][0]= cu*sv*cw + su*sw;
_a[0][1]= su*cv; _a[1][1]= su*sv*sw + cu*cw; _a[2][1]= su*sv*cw - cu*sw;
_a[0][2]= -sv; _a[1][2]= cv*sw; _a[2][2]= cv*cw;
return this;
};
Что бы вращение шло вокруг точки, нужно сначала создать матрицу перемещения и умножить её на матрицу вращения.