One sphere with radius $R$, named big sphere, two points on it: $a (\text{(longitude)}_a, \text{(latitue)}_a), b(\text{(longitude)}_b, \text{(latitude)}_b)$, $\text{distance}\space (a,b)=r$, $a$ is center & $r$ is radius. There is another sphere, named little sphere. Now what is the equation of circle of the intersection of two spheres? Parametric equation of the circle: $\text{longitude}=f(xx), \text{latitude}=g(xx)$

  • $\begingroup$ assume the big sphere equation is:x^2+y^2+z^2=R^2, then the little sphere is:(x-xa)^2+(y-ya)^2+(z-za)^2=r^2,but i want the parameter equation: lon=f(x),lat=g(x) 0<=x<2pi $\endgroup$ – user5900 Jan 16 '11 at 8:35

This (calculating the equation of the circle intersection between two spheres) will probably help.


I assume $\text{distance}\ r$ is an Euclidean distance in 3D, not the length of the great circle's arc on the big sphere. Of course $0 \le r \le 2R$, with each 'equal' case causing a circle to degenerate to a single point.

Let's define a Cartesian coordinates system, so that:

  • the origin is in the big sphere's center,
  • XY plane is a plane of equator: $\varphi = 0$,
  • positive latitudes $\varphi$ correspond to positive $z$,
  • zero longitude $\lambda = 0$ corresponds to XZ plane $y=0$,
  • longitude is measured from positive X semiaxis towards positive Y semiaxis.

Then: $$ \begin{cases} x = R \cos \varphi \cos \lambda \\ y = R \cos \varphi \sin \lambda \\ z = R \sin \varphi \end{cases} \quad \text{and}\quad \begin{cases} \varphi = \arcsin \frac zR \\ \lambda = \arctan \frac yx \end{cases} $$ Of course one needs to check for singularity when calculating $\lambda$ for $x=0$ and adjust the result by $+180^\circ$ when $x<0$.

Let $\rho$ = an angle between the big sphere's radii ending at $a$ and at $b$. Then $\rho = 2\arcsin \frac r{2R}$.

Suppose $a = a_1$ = 'the North Pole': $\varphi_{a1} = 90^\circ, x=y=0, z=R$. Then the circle sought $C$ is a circle of latitude at $\varphi = 90^\circ - \rho$ (with positive latitudes corresponding to the 'northern' hemisphere).
It can be easily parameterized as

$$\begin{cases}\varphi_1 = 90^\circ - \rho \\ \lambda_1 = t\end{cases} \ \ \text{for}\ \ 0<t<360^\circ$$

and then transformed into XYZ coordinates:

$$ \begin{cases} x_1 = R \cos \varphi_1 \cos t \\ y_1 = R \cos \varphi_1 \sin t \\ z_1 = R \sin \varphi_1 \end{cases} $$

Now suppose we shift $a$ along the Greenwich meridian to the south, to some point $a_2$ at latitude $\varphi_a$. That means the whole circle $C$ undergoes a rotation in 3D about the Y axis by an angle $\delta_\varphi = 90^\circ-\varphi_a$, measured from positive Z semiaxis towards positive X semiaxis. Each point of circle $C$ gets its coordinates tranformed like this:

$$\begin{cases} x_2 = x_1 \cos \delta_\varphi + z_1 \sin \delta_\varphi \\ y_2 = y_1 \\ z_2 = z_1 \cos \delta_\varphi - x_1 \sin \delta_\varphi \\ \end{cases}$$

Now we need to shift $C$ along the circles of latitude so its 'center' gets into a desired position $a_3$ at longitude $\lambda_a$. This is a 3D rotation about the Z axis:

$$ \begin{cases} x_3 = x_2 \cos \lambda_a - y_2 \sin\lambda_a \\ y_3 = y_2 \cos \lambda_a + x_2 \sin \lambda_a \\ z_3 = z_2 \end{cases} $$

Now you only need to compose the transformations described above and possibly add another $(x,y,z)\to(\varphi,\lambda)$ transformation to get a parametric equation of the circle.


The circle belongs to a plane that can be found by subtracting the equations of both spheres:


Now plug the spherical coordinates to yield


You can express $\theta$ as a function of $\phi$ or conversely, by solving a linear trigonometric equation of the form

$$\alpha\cos t+\beta\sin t=\gamma.$$

WLOG (normalize if necessary), $\alpha=\cos u$ and $\beta=\sin u$, then $\cos(t-u)=\gamma$ gives $t$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.