/// <summary> /// Retourne la position sphérique associée à la position en coordonnées cartésiennes donnée. /// </summary> /// <returns></returns> public static SphericalCoords FromCartesian(Vector3 vec) { SphericalCoords coords = new SphericalCoords(); coords.Radius = (float)Math.Sqrt(vec.X * vec.X + vec.Y * vec.Y + vec.Z * vec.Z); coords.Theta = To0_2PI_Range((float)Math.Acos(vec.Z / coords.Radius)); coords.Phi = To0_2PI_Range((float)Math.Atan2(vec.Y, vec.X)); return coords; }
/// <summary> /// Retourne la position sphérique associée à la position en coordonnées cartésiennes donnée. /// </summary> /// <returns></returns> public static SphericalCoords FromCartesian(Vector3 vec) { SphericalCoords coords = new SphericalCoords(); coords.Radius = (float)Math.Sqrt(vec.X * vec.X + vec.Y * vec.Y + vec.Z * vec.Z); coords.Theta = To0_2PI_Range((float)Math.Acos(vec.Z / coords.Radius)); coords.Phi = To0_2PI_Range((float)Math.Atan2(vec.Y, vec.X)); return(coords); }