Rotação de ponto no espaço 3D

Tenho um problema relacionado à rotação do ponto no espaço 3

uponha que eu tenha um ponto com as coordenadas X, Y e

E agora eu quero girá-lo, especificando a rotação de uma destas três maneiras:

Por grau definido pelo usuário Pelo eixo de rotação definido pelo usuárioAround (relativo a) ponto definido pelo usuário

Encontrei um bom link sobreAqu, mas não aborda o ponto 3. Alguém pode me ajudar a resolver isso?

questionAnswers(1)

yourAnswerToTheQuestion