The trick for this one is the applying the math.

#Rx(θ):
def calculateX(i, j, k):
return j * sin(A) * sin(B) * cos(C) - k * cos(A) * sin(B) * cos(C) + j * cos(A) * sin(C) + k * sin(A) * sin(C) + i * cos(B) * cos(C)
#Ry(θ):
def calculateY(i, j, k):
return j * cos(A) * cos(C) + k * sin(A) * cos(C) - j * sin(A) * sin(B) * sin(C) + k * cos(A) * sin(B) * sin(C) - i * cos(B) * sin(C)
#Rz(θ):
def calculateZ(i, j, k):
return k * cos(A) * cos(B) - j * sin(A) * cos(B) + i * sin(B)
