Ângulo entre 3 pontos no espaço 3d

Eu tenho 3 pontos contendo coordenadas X, Y, Z:

var A = {x: 100, y: 100, z: 80},
    B = {x: 100, y: 175, z: 80},
    C = {x: 100, y: 100, z: 120};

As coordenadas são pixels de uma transformação CSS 3D. Como posso obter o ângulo entre os vetores BA e BC? Uma fórmula matemática fará, o código JavaScript será melhor. Obrigado.