三维向量如何转欧拉角

如题,有归一化三维向量a(x,y,z),xyz的取值范围都在-1到1之间,请问用什么算法可以得到这个向量的旋转值(x1,y1,z1),x1y1z1的取值范围在0-360之间。

Vector3 velocity = a;
Vector3 eulerAngles = Quaternion.FromToRotation(Vector3.forward, velocity).eulerAngles;

是要自己实现算法?还是可以用第三方库?第三方库的话有很多,例如Eigen