I recently studied a number of matrix libraries used for WebGL to better understand the math that goes into the various transformations performed on matrices. I'm currently trying to better understand the math used for rotational transforms.
In particular, I already understand the transformations used to rotate around three axes, as well as to create these matrices (shown below).

However, I do not get the equations that are used to rotate around an arbitrary axis that is not an x, y- or z axis.
WebGL, JS ( e - , 4x4):
len = Math.sqrt(x*x + y*y + z*z);
if (len !== 1) {
rlen = 1 / len;
x *= rlen;
y *= rlen;
z *= rlen;
}
nc = 1 - c;
xy = x * y;
yz = y * z;
zx = z * x;
xs = x * s;
ys = y * s;
zs = z * s;
e[ 0] = x*x*nc + c;
e[ 1] = xy *nc + zs;
e[ 2] = zx *nc - ys;
e[ 3] = 0;
e[ 4] = xy *nc - zs;
e[ 5] = y*y*nc + c;
e[ 6] = yz *nc + xs;
e[ 7] = 0;
e[ 8] = zx *nc + ys;
e[ 9] = yz *nc - xs;
e[10] = z*z*nc + c;
e[11] = 0;
e[12] = 0;
e[13] = 0;
e[14] = 0;
e[15] = 1;
, , 3D-, , , .
, nc, xy, yz, zx, xs, ys zs? , , x*x*nc + c e[0]?
SO post, :

( ), JS .
? , , , , - , x, y z, , .
, , .
, , , . 4x4 T x, T y T z ?
.