2 added 202 characters in body

This is going to be unsightly...

The following Mathematica code:

Needs["VectorAnalysis"]
Simplify@ CoordinatesFromCartesian[
CoordinatesToCartesian[{r, theta, phi}, Spherical]
+ CoordinatesToCartesian[{r0, theta0, phi0}, Spherical],
Spherical
]


gives the following output (doctored so that it looks nicer):

$$r' = \sqrt{r^2+2 r_0 r \left(\sin (\theta ) \sin \left(\theta _0\right) \cos \left(\phi -\phi _0\right)+\cos (\theta ) \cos \left(\theta _0\right)\right)+r_0^2}$$

$$\theta' = \cos ^{-1}\left(\frac{r \cos (\theta )+r_0 \cos \left(\theta _0\right)}{\sqrt{r^2+2 r_0 r \left(\sin (\theta ) \sin \left(\theta _0\right) \cos \left(\phi -\phi _0\right)+\cos (\theta ) \cos \left(\theta _0\right)\right)+r_0^2}}\right)$$

$$\phi' = \tan ^{-1}\left(r \sin (\theta ) \cos (\phi )+r_0 \sin \left(\theta _0\right) \cos \left(\phi _0\right),r \sin (\theta ) \sin (\phi )+r_0 \sin \left(\theta _0\right) \sin \left(\phi _0\right)\right)$$

In this last line, there is a two-argument variant of arctan, which is explained here, for example.

1

This is going to be unsightly...

The following Mathematica code:

Needs["VectorAnalysis"]
Simplify@ CoordinatesFromCartesian[
CoordinatesToCartesian[{r, theta, phi}, Spherical]
+ CoordinatesToCartesian[{r0, theta0, phi0}, Spherical],
Spherical
]


gives the following output (doctored so that it looks nicer):

$$r' = \sqrt{r^2+2 r_0 r \left(\sin (\theta ) \sin \left(\theta _0\right) \cos \left(\phi -\phi _0\right)+\cos (\theta ) \cos \left(\theta _0\right)\right)+r_0^2}$$

$$\theta' = \cos ^{-1}\left(\frac{r \cos (\theta )+r_0 \cos \left(\theta _0\right)}{\sqrt{r^2+2 r_0 r \left(\sin (\theta ) \sin \left(\theta _0\right) \cos \left(\phi -\phi _0\right)+\cos (\theta ) \cos \left(\theta _0\right)\right)+r_0^2}}\right)$$

$$\phi' = \tan ^{-1}\left(r \sin (\theta ) \cos (\phi )+r_0 \sin \left(\theta _0\right) \cos \left(\phi _0\right),r \sin (\theta ) \sin (\phi )+r_0 \sin \left(\theta _0\right) \sin \left(\phi _0\right)\right)$$