I want to find the planes tangent to three given circles in 3D space.

enter image description here

I'm not sure how many solutions there are, in general. My guess is that there are 8. This suggests that we might have to find the roots of some polynomial of degree 8, which would be bad news.

A Google search for "plane tangent to three circles" yields exactly one result, which is this question. It was asked in 2011, and was not answered. Maybe the nasty notation scared people away, so let me suggest a nicer one:

Let's call the three circles $C_1$, $C_2$, $C_3$, and suppose that $C_i$ is defined by a center point $P_i$, a radius $r_i$, and a unit vector $N_i$ normal to its plane.

So, again, the question is:
find the equations of the tangent planes in terms of the $P_i$, $r_i$, and $N_i$.

The case where the three radii are equal is of some interest, if that's easier.

Also, I'm interested only in the case where the circles are in "general position", which means (I think) that the number of solutions is finite but non-zero. So, please feel free to ignore special cases like the circles having a common tangent line, or being coplanar, or lying on a common cylinder or cone, etc.

  • 1
    $\begingroup$ Couldn't it be infinitely many? Imagine 3 circles with a common tangent line. It seems to me that line could be in infinitely many planes. $\endgroup$
    – Jens
    Apr 5, 2018 at 13:12
  • $\begingroup$ OK. So let's apply the usual hack -- let's say that the circles are "in general position". I'll add that to the question. $\endgroup$
    – bubba
    Apr 5, 2018 at 13:19
  • $\begingroup$ @Jens Yes there can be infinitely many for example the centers are colinear and radii equal. However the principle Conservation of Number says that IF the number is finite then it is constant. Thus, for example through $5$ points there is $1$ conic, there could be infinitely many, but if there is a finite number it is $1$, and never $2$ or $3$ or something. $\endgroup$ Apr 5, 2018 at 13:21
  • $\begingroup$ I haven't solved it yet, but the problem can be reduced down to finding a common tangent line to two circles in 3D space. Then the common tangent plane is the plane formed by 3 common tangent lines of each pair of circles. Since there are two tangent lines for each pair (in the most general case), this explains why there are $2^3 = 8$ possible planes. $\endgroup$
    – Dylan
    Apr 5, 2018 at 15:53
  • 1
    $\begingroup$ @Dylan What do you mean by tangent line to a circle in space, how is this different from just intersecting the circle ? $\endgroup$ Apr 5, 2018 at 15:57

5 Answers 5


Let the circles be $$\vec{a}\cos\theta+\vec{b}\sin\theta+\vec{c}\\ \vec{d}\cos\phi+\vec{e}\sin\phi+\vec{f}\\\ \vec{g}\cos\psi+\vec{h}\sin\psi+\vec{k}$$ Let the unit normal to the plane be $\vec{u}$, where $\vec{u}$ is in the unit sphere. The equation of the plane is $\langle u,x\rangle=p$, where $x$ is the position vector of any point in the plane, and $p$ is a constant.

Parallel planes have the same $u$ ,but different constants. If the plane goes through the origin, then its equation is $(u,x)=0$. Otherwise $(u,x)$ is a different number, but still constant.

Each circle touches the plane at one point, but is otherwise on one side of the plane or the other. So $(u,x)=p$ at that point, but not at other points of the circle. So there is one $\theta$, one $\phi$ and one $\psi$ where the value is $p$. The dot product has the same value at those three points, which gives three equations in the six variables (u counts as two) $\vec{u},\theta,\phi,\psi,p$.
$$\langle u,a\rangle\cos\theta+\langle u,b\rangle\sin\theta+\langle u,c\rangle = p =\\ \langle u,d\rangle\cos\phi+\langle u,e\rangle\sin\phi+\langle u,f\rangle = \\ \langle u,g\rangle\cos\psi+\langle u,h\rangle\sin\psi+\langle u,k\rangle$$

Since the rest of the circle is on one side or other of the plane, either $(u,x) > p$ for all other points of the circle, or $(u,x)<p$ for all other points of the circle. So $(u,x)$ has either a local max or local min, as $\theta$ changes. I differentiated ${\frac d{d\theta}}(u,a\cos\theta+b\sin\theta+c)=0$ and so on, to get three more equations:

$$\langle u,a\rangle\sin\theta=\langle u,b\rangle\cos\theta\\ \langle u,d\rangle\sin\phi=\langle u,e\rangle\cos\phi\\ \langle u,g\rangle\sin\psi=\langle u,h\rangle\cos\psi$$ We can eliminate $\theta,\phi,\psi$ to get $$\sqrt{\langle u,a\rangle^2+\langle u,b\rangle^2}+\langle u,c\rangle = \\ \sqrt{\langle u,d\rangle^2+\langle u,e\rangle^2} + \langle u,f\rangle = \\ \sqrt{\langle u,g\rangle^2+\langle u,h\rangle^2} + \langle u,k\rangle$$ I don't know how to simplify beyond that.

  • $\begingroup$ What do you mean dot of $u$ and a point on the circle ? The dot of $u$ and the vector from the origin to the point of the circle ? $\endgroup$ Apr 5, 2018 at 15:27
  • $\begingroup$ Yes. THe equation of the plane is $\langle u,x\rangle=constant$ $\endgroup$
    – Empy2
    Apr 5, 2018 at 15:48
  • $\begingroup$ I dont understand what you are saying. Do you mean $(u,x)=const$ for ALL points on the circle, or just the point of intersection. Isnt the equation of the plane $(u,x)=0$ as $u$ is the normal ? $\endgroup$ Apr 5, 2018 at 15:55
  • $\begingroup$ I get what you are saying now. $\endgroup$ Apr 5, 2018 at 16:42
  • $\begingroup$ Well, you have 3 equations in three variables, if you add the equation $|u|=1$. $\endgroup$ Apr 5, 2018 at 16:47

Here is a solution from algebraic geometry, (related to ideas from Schubert calculus). The set of all planes in 3-space is a three dimensional projective $\mathbb{P}^3$ space, given by the (projective) coefficients of the equation for a plane
that is $$ax+by+cz+d=0 \leftrightarrow [a,b,c,d]$$ (yes, I know the equation is written affine, it doenst matter).

Now let $C$ denote the variety in $\mathbb{P}^3$ of all planes tangent to a given circle (or more generally conic section, it doesnt change the question). We want to find the number of points in $$C_1\cap C_2\cap C_3$$ where $C_i$ is the same as $C$ with three different circles.

Note that $C_i$ is a surface that is of dimension $2$ so the intersection of three surfaces will be a finite number of points, (just as the intersection of $3$ planes is a point.)

Now Bezout's theorem tells us that the number of such points is the product of the degrees of these surfaces, say $d$. Since the surfaces are all equivalent they all have the same degree. Thus the answer is $d^3$.

It remains to show that $d=2$. For this take the intersection of $C$ with a linear space $L$. The simplest linear space in the space of all planes in a pencil, that is, all planes containing a fixed line. It is clear that if you have fixed circle and all planes through a line there will be two of those planes tangent to the circle. Thus $d=2$ and the answer is $$d^3=2^3=8.$$

  • $\begingroup$ Thanks for confirming my guess about the number of solutions. But actually I want to know the equations of those 8 planes. $\endgroup$
    – bubba
    Apr 5, 2018 at 13:36
  • $\begingroup$ You want the equations ? Thats a different question. $\endgroup$ Apr 5, 2018 at 13:37
  • $\begingroup$ You need to work of the condition for a plane to be tangent to a circle. $\endgroup$ Apr 5, 2018 at 13:38
  • $\begingroup$ > That's a different question. Yes, but it's the question I asked. I modified the question to make this more clear. $\endgroup$
    – bubba
    Apr 5, 2018 at 13:42

I have asked the original question you're referring to, and have abandoned it... until recently (last weekend, as a matter of fact). I think it's solveable, but not so easily. Starting point would be projecting the circle #3 on the plane of circle #2- and getting the common tangent of the circle and resulting ellipse. This problem results in 4th degree polynomial (you can find methods for solving that without numerical methods somewhere around here). After that, there is the problem of the third circle, which I intend to solve by projecting the 'unprojected' tangent to the plane of circle #1 and finding two lines parallel to it that are tangent to that circle (quadratic equation). This should yield 8 solutions.

I could post my progrees when I get to the point it's finished, but I cannot guarantee it will be useful- it will be a mix of spatial vector and analytic planar geometry.

So far, I've worked out the tangent problem, and am preparing to tackle projecting the circle on the plane (should be relatively simple if the centre of projected circle coincides with the ellipse centre- which I assume it will, but will check)


OK, to follow up on my last post, here's my progress.

Let's assume $\vec T_i$ are circle centers, $\vec n_i$ vectors normal to each circle, and $r_i$ their respective radii.

The first step is to project one circle onto the plane of another (in my case, circle 1 onto the plane of the circle 3). For sake of brevity I will use following function $project(\vec v_1,\vec v_2)=\vec v_1-(\vec v_2 \cdot \vec v_1) \cdot \vec v_2$.

$\vec T'_1 = project(\vec T_1,\vec n_3)$ - projection point of the center of the circle on the plane

$\vec T'_1 = \vec T_1 + \left[ \vec n_3 \cdot \left(\vec T_3 - \vec T_1 \right) \right] \cdot \vec n_3$ - projection point of the center of the circle on the plane

$\vec y_1 = \frac {project(\vec n_1,\vec n_3)}{\vert project(\vec n_1,\vec n_3) \vert}$ - y axis of the new coordinate system

$\vec x_1 = \frac {\vec n_3 \times \vec y_1}{\vert \vec n_3 \times \vec y_1 \vert}$ - x axis of the new coordinate system

$\vec x_1 = \frac {\vec y_1 \times \vec n_3}{\vert \vec y_1 \times \vec n_3 \vert}$ - x axis of the new coordinate system

$f = \vec n_1 \cdot \vec n_3$ - ratio of the minor axis to the radius of the circle (major axis)

Obtaining coordinates of the third circle in new (2D) coordinate system:

$ x_3 = \left( \vec T_3-\vec T'_1 \right) \cdot \vec x_1$

$ y_3 = \left( \vec T_3-\vec T'_1 \right) \cdot \vec y_1$

Now we have two parallel coordinate systems $x,y$ and $x_k,y_k$ with shift of $(x_3,y_3)$. In $x,y$ system we have ellipse $\frac{x^2}{r_1^2} + \frac{y^2}{f^2r_1^2}=1$, which gives:

$y=\pm f\sqrt{r_1^2-x^2}$ , $\dot y= \mp \frac{f \cdot x}{\sqrt{r_1^2-x^2}}$ and $l=y-x \cdot \dot y=\pm \frac{f \cdot r_1^2}{\sqrt{r_1^2-x^2}}$

To see what would be l in the other coordinate system we 'calculate' $l'_k$ as:

$l'_k= x_3 \cdot \dot y + l - y_3 = \ldots = \mp f \frac {x_3 \cdot x - r_1^2}{\sqrt{r_1^2-x^2}}-y_3$

Doing the same for the circle $x_k^2+y_k^2=r_3^2$ in $x_k,y_k$ coordinate system results in following:

$y_k=\pm\sqrt{r_3^2-x_k^2}$, $\dot y_k=\mp \frac{x_k}{\sqrt{r_3^2-x_k^2}}$ and $l_k=y_k-x_k \cdot \dot y_k=\pm \frac{r_3^2}{\sqrt{r_3^2-x_k^2}}$

And now for the fun part- equalling the slopes of the tangents ($\dot y = \dot y_k$) will rid us of one unknown $x_k$:

$\frac{f \cdot x}{\sqrt{r_1^2-x^2}}=\frac{x_k}{\sqrt{r_3^2-x_k^2}}$


$x_k = \pm \frac {f \cdot r_3 \cdot x}{\sqrt {r_1^2-\left(1-f^2\right)\cdot x^2}}$ (note: plus sign is for outer, minus for inner tangents)

Equating the $l'_k=l_k$ will give the 'final' equation to solve for $x$:

$\mp f \frac {x_3 \cdot x - r_1^2}{\sqrt{r_1^2-x^2}}-y_3=\pm \frac{r_3^2}{\sqrt{r_3^2-x_k^2}}$

the troublesome bit is getting rid of $\sqrt{r_3^2-x_k^2}$ which is:

$\sqrt{r_3^2-x_k^2} = r_3\frac{\sqrt{r_1^2-x^2}}{\sqrt {r_1^2-\left(1-f^2\right)\cdot x^2}}$

and with that we get the equation:

$\pm\left(x_3 \cdot x - r_1^2\right)-y_3\sqrt{r_1^2-x^2}=\pm r_3\sqrt {r_1^2-\left(1-f^2\right)\cdot x^2}$

Once we square that equation, sort it out a bit, and then square it again and sort out once again, we're left with:

$A x^4+B x^3 + C x^2 +D x + E = 0$

$A=\left[ x_3^2- y_3^2 + \left(1-f^2\right) r_3^2 \right]^2 + 4f^2 x_3^2 y_3^2$

$B=-4f^2 r_1^2 x_3 \left[ x_3^2 + y_3^2 + \left(1-f^2\right) r_3^2 \right]$

$C= 2 r_1^2 \left( f^2 r_1^2 +y_3^2 - r_3^2 \right) \left[ x_3^2- y_3^2 + \left(1-f^2\right) r_3^2 \right] + 4f^2 r_1^2 \left[ r_1^2 \left( f^2 x_3^2 + y_3^2 \right) - x_3^2 y_3^2 \right]$

$D= 4f^2 r_1^4 x_3 \left( -f^2 r_1^2 +y_3^2 + r_3^2 \right)$

$E= r_1^4 \left[ \left( f^2 r_1^2 +y_3^2 - r_3^2 \right)^2 -4 f^2 r_1^2 y_3^2 \right]$

Solving this equation will give four values of x on the projected ellipse (y coordinates should be calculated, bearing in mind that, generally speaking, $x_3 \cdot y_3>0 \Rightarrow x \cdot y<0$, and vice versa, while $x_k$ and $y_k$ should also be calculated, $x \cdot x_k >0$ for outer, and $x \cdot x_k<0$ for innner tangents).

This method so far has been verified with CAD models. What is left to do is to 'unproject' points on the ellipse to the original plane (plane of circle 1) and with corresponding points on the circle 3 we have four lines, and each of those lines will lie in two of the eight planes. To solve the rest of the problem, I think the best course of action would be to pass a plane perpendicular to each line through third circle (circle 2) centerpoint, project that circle onto that plane and find tangents to that ellipse from the point in which line intersects the plane. Getting the equations of planes should be straightforward from there... If anyone's still interested, I'll post the following procedure when I finish and check it.

EDIT I have corrected first and third equation because, even though they worked in 2D, this is the correct form and works in 3D. Here's the rest of procedure (including solving the equation)...

$p_1 = 2C^3 - 9BCD + 27AD^2 + 27BE^2 - 72ACE$

$p_2 = p_1 + \sqrt {-4 \left( C^2 - 3BD + 12AE \right) ^3 + p_1^2}$

$p_3 = \frac {1}{3A} \left( 2 \frac { C^2 - 3BD + 12AE}{p_2} \sqrt[3] {\frac {p_1}{2}} +1 \right) \sqrt[3] {\frac {p_1}{2}}$

$p_4 = \sqrt {\frac {B^2}{4A^2} - \frac{2C}{3A} + p_3}$

$p_5 = \frac {B^2}{2A^2} - \frac{4C}{3A} - p_3$

$p_6 = \frac {-B^3 + 4ABC - 8A^2D}{4A^3p_4}$

$_1xT_2 = -\frac {B}{4A} - \frac {p_4}{2} \pm \frac {\sqrt {p_5 - p_6}}{2}$ $\quad , \quad$ $_3xT_4 = -\frac {B}{4A} + \frac {p_4}{2} \pm \frac {\sqrt {p_5 + p_6}}{2}$

For each od those $xT_i$ where $i=1..4$, we calculate:

$yT_i=\pm f\sqrt{r_1^2-xT_i^2}$ $\quad , \quad$ ${x_k}_i = \pm \frac {f \cdot r_3 \cdot xT_i}{\sqrt {r_1^2-\left(1-f^2\right)\cdot xT_i^2}}$ $\quad , \quad$ ${y_k}_i=\pm\sqrt{r_3^2-{x_k}_i^2}$

$\vec {{TP_3}_i} = \vec T_3 + {x_k}_i \cdot \vec x_1 +{y_k}_i \cdot \vec y_1$ - tangent point on the circle 3

$\vec {{TP´_1}_i} = \vec T´_1 + xT_i \cdot \vec x_1 +yT_i \cdot \vec y_1$ - tangent point on projected ellipse

$\vec {{TP_1}_i} = \vec {{TP´_1}_i} + \frac {\vec n_1 \left( \vec T_1 - \vec {{TP´_1}_i} \right) }{\vec n_1 \cdot \vec n_3} \vec n_3$ - tangent point on circle 1 (point on the ellipse 'unprojected' onto the plane of circle 1)

$\vec {{l_1}_i} = \frac {\vec {TP_3}_i - \vec {TP_1}_i}{\vert \vec {TP_3}_i - \vec {TP_1}_i \vert}$ - tangent line on circles 1 and 3

Now we set up a plane (normal to line $\vec {{l_1}_i}$, through point $T_2$) and coordinate system:

$\vec {{y_2}_i} = \frac {project(\vec n_2, \vec {{l_1}_i})}{\vert project(\vec n_2, \vec {{l_1}_i}) \vert}$ $\quad , \quad$ $\vec {{x_2}_i} = \frac {\vec {{y_2}_i} \times \vec n_2}{\vert \vec {{y_2}_i} \times \vec n_2 \vert}$

$\vec {{TP´_3}_i} = \vec {{TP_3}_i} + \left[ \vec {{l_1}_i} \cdot \left( \vec T_2 - \vec {{TP_3}_i} \right) \right] \cdot \vec {{l_1}_i}$ - projection of $\vec {{TP_3}_i}$ onto the plane

Coordinates of projected point in 2D coordnate system:

${x_{TP}}_i = \left( \vec {{TP´_3}_i} - \vec T_2 \right) \cdot \vec {x_2}_i $

${y_{TP}}_i = \left( \vec {{TP´_3}_i} - \vec T_2 \right) \cdot \vec {y_2}_i $

$f´_i = \vert \vec {{l_1}_i} \cdot \vec n_2 \vert$ - ratio of the minor axis to the radius of the circle (major axis)

Now we can calculate coordinates of tangent points (rays from ${TP´_3}_i$) on the ellipse:

$_1{{xT2}_i}_2 = \frac {f´_i^2 r_2^2 {x_{TP}}_i - r_2 {y_{TP}}_i \pm \sqrt {f´_i^2 \left( {x_{TP}}_i^2 - r_2^2\right) + {y_{TP}}_i^2}}{f´_i^2 {x_{TP}}_i^2 + {y_{TP}}_i^2}$

For each of those $xT2_i$ we get corresponding $yT2_i = \pm f´_i \sqrt{r_2^2 - xT2_i^2}$. And each of those points will be 'unprojected' onto the circle plane.

$\vec {TP´_2}_i = \vec T_2 + xT2_i \cdot \vec {x_2}_i + yT2_i \cdot \vec {y_2}_i$

$\vec {{TP_2}_i} = \vec {TP´_2}_i + \left[ \vec n_2 \cdot \left( \vec T_2 - \vec {TP´_2}_i \right) \right] \cdot \vec n_2$

$\vec {l_2}_i = \frac {\vec {{TP_3}_i} - \vec {{TP_2}_i}}{\vert \vec {{TP_3}_i} - \vec {{TP_2}_i} \vert}$ - second line in the tangent plane (sic. there are two of those lines for each i... resulting in eight planes)

$\vec {n_1}_i = \frac {\vec {l_1}_i \times \vec {l_2}_i}{\vert \vec {l_1}_i \times \vec {l_2}_i \vert}$ - normal vector to the plane

${D_1}_i = -\vec {n_1}_i \cdot \vec {{TP_3}_i}$ - plane constant

$\vec {n_1}_i \cdot \vec T + {D_1}_i = 0$ - equation of tangent planes

  • $\begingroup$ OK, I have corrected two equations and comlpleted the answer. Hope that helps. $\endgroup$ Jul 30, 2020 at 17:14

This is not a direct answer but describes a converse situation in order to define how the arbitrary constants play out. Hopefully it could help model the full scene.

It is assumed that:

  1. (N1,N2,N3) are skew.

  2. Definition of circle tangency in 3-space... A circle diameter 2a is displaced through radius a in the plane of circle to the tangential position T. Rotation of this displaced circle around axis T generates a torus with T as axis of symmetry, making all circles in any meridional plane tangent to T.

Take three spheres of radius $(R_1,R_2,R_3)$ and place their south poles contacting Horizontal plane HP $z=0$ at arbitrary points $(S_1,S_2,S_3).$ North South polar axis are all parallel to $z-$ axis.

Select three arbitrarily different longitude / meridians $\phi$ on each sphere. Extend the longitude plane till it intersects HP along red lines $T$.

Rotate each polar longitude circle by an arbitrary amount $\Delta \phi$ around axis $T$ towards HP... out of the sphere.

This has re-created a situation in the question in terms three radii, three arbitrary $\phi$s and three $\Delta \phi$s because the three tilted circles are now skew and tangential to the HP.

3 Circles touch  a plane


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .