function setTipPos ([x, y, z]) {
const diffX = x - anchor[0]
const diffY = y - anchor[1]
const diffZ = z - anchor[2]
const rotatedX = diffX * Math.cos(ro) + diffY * Math.sin(ro)
const rotatedY = diffY * Math.cos(ro) - diffX * Math.sin(ro)
const r = Math.sqrt(Math.pow(rotatedY, 2) + Math.pow(rotatedX, 2))
const p = r - coxa
const u = Math.sqrt(Math.pow(p, 2) + Math.pow(diffZ, 2))
const gama = p > 0 ? Math.atan(-diffZ / p) : Math.PI + Math.atan(-diffZ / p)
return [
Math.atan(rotatedY / rotatedX),
Math.acos((Math.pow(u, 2) + Math.pow(femur, 2) - Math.pow(tibia, 2)) / (2 * femur * u)) - gama,
Math.acos((Math.pow(tibia, 2) + Math.pow(femur, 2) - Math.pow(u, 2)) / (2 * tibia * femur))
]
}