Cet article traite du calcul des coordonnées des points d’intersection des tangentes à deux cercles. Comme le montre la figure suivante, quatre configurations peuvent exister dans le cas général :
Pour commencer, considérons le fait que chaque point appartient au cercle : $$ \left \{ \begin{array}{r c l} (x_1 - x_A)^2 + (y_1 - y_A)^2 = {R_A}^2 \\ (x_2 - x_B)^2 + (y_2 - y_B)^2 = {R_B}^2 \end{array} \right . $$
Considérons maintenant le fait que chaque segment tangent est perpendiculaire au rayon : $$ \left \{ \begin{array}{r c l} (x_1 - x_2)^2 + (y_1 - y_2)^2 + {R_A}^2 = (x_2 - x_A)^2 + (y_2 - y_A)^2 \\ (x_1 - x_2)^2 + (y_1 - y_2)^2 + {R_B}^2 = (x_1 - x_B)^2 + (y_1 - y_B)^2 \end{array} \right . $$
Il devient alors possible de résoudre ces quatre équations afin de déterminer les quatre inconnues. Malheureusement, le système n’est pas linéaire et la résolution est complexe.
En revanche, nous pouvons tirer avantageusement profit des configurations de Thales qui nous permettent de calculer facilement la longueur \( \left | P_1 P_2 \right |\).
Dans cette configuration, le point \( U \) est ajouté sur le rayon du cercle \(C_B\) de façon à ce que \( \left | UP_B \right | = R_B - R_A \).
Le triangle \( \widehat {P_A U P_B} \) est rectangle et \( \left | P_AU \right |^2 + \left | P_BU \right |^2 = \left | P_AP_B \right |^2\). En s’appuyant sur ce triangle, nous pouvons déduire que :
$$ \left | P_1P_2 \right | = \sqrt { \left | P_AP_B \right |^2 - (R_A - R_B)^2 }$$
De l’équation précédente, nous pouvons déduire que la première configuration n’existe que si \( \left | P_AP_B \right |^2 \ge (R_A - R_B)^2 \) ie. c’est à dire si aucun des cercles n’est intégralement inclus dans l’autre.
Dans cette nouvelle configuration, les points \(A'\) and \(P_1'\)sont ajoutés de façon à ce que \( \left | P_AP_B \right | = \left | MA' \right | \) et \( \left | P_1P_2 \right | = \left | MP_1' \right | \). Notez que, d’après Thales \( \left | P_1'A' \right | = R_A + R_B \).
Comme pour la première configuration \( \widehat {M P_1' A'} \) est un triangle rectangle. $$ \left | MP_1' \right |^2 + \left | P_1'A' \right |^2 = \left | MA' \right |^2 $$ $$ \left | P_1P_2 \right |^2 + (R_A + R_B)^2 = \left | P_AP_B \right |^2 $$
Il devient facile de déduire : $$ \left | P_1P_2 \right | = \sqrt { \left | P_AP_B \right |^2 - (R_A + R_B)^2 }$$ De l’équation précédente, nous pouvons déduire que la seconde configuration n’existe que si \( \left | P_AP_B \right |^2 \ge (R_A + R_B)^2 \) ie. c’est à dire aucun des cercles n’est intégralement inclus dans l’autre.
Une fois que \( \left | P_1P_2 \right |\) est connu, les équations peuvent être reformulées. Considérons \(L\) égale à \( \left | P_1P_2 \right |\), les équations deviennent :
$$ \left \{ \begin{array}{ll} (x_1 - x_A)^2 + (y_1 - y_A)^2 = {R_A}^2 \\ L^2 + {R_B}^2 = (x_1 - x_B)^2 + (y_1 - y_B)^2 \end{array} \right . $$
$$ \left \{ \begin{array}{ll} (x_2 - x_B)^2 + (y_2 - y_B)^2 = {R_B}^2 \\ L^2 + {R_A}^2 = (x_2 - x_A)^2 + (y_2 - y_A)^2 \end{array} \right . $$
Nous disposons maintenant de deux systèmes indépendants non linéaires à résoudre, étant donné la symétrie du problème, la résolution d’un système nous permet d’obtenir la solution générale.
Comme les systèmes sont équivalents, nous allons nous intéresser au premier : $$ \left \{ \begin{array}{ll} (x_1 - x_A)^2 + (y_1 - y_A)^2 = {R_A}^2 \\ (x_1 - x_B)^2 + (y_1 - y_B)^2 = L^2 + {R_B}^2 \end{array} \right .$$
Il est évident que la solution géométrique est l’intersection de deux cercles de centres \(P_A\) et \(P_B\) avec des rayons respectifs de \(R_A\) et \(\sqrt{L^2+{R_B}^2}\).
Les coordonnées de \(P_1\) sont données par :
$$ \left \{ \begin{array}{ll} x_1= \frac{x_A+x_B}{2} + \frac{(x_B-x_A)({R_A}^2-{R_1}^2)}{2D^2} \pm 2\frac{y_A-y_B}{D^2}\sigma_1 \\ y_1= \frac{y_A+y_B}{2} + \frac{(y_B-y_A)({R_A}^2-{R_1}^2)}{2D^2} \pm 2\frac{x_A-x_B}{D^2}\sigma_1 \end{array} \right .$$
avec
$$ \begin{array}{ll} D = \sqrt{ (x_B-x_A)^2 + (y_B-y_A)^2 } \\ L = \sqrt { D^2 - (R_A \pm R_B)^2 } \\ R_1= \sqrt{L^2+{R_B}^2} \\ \sigma_1=\frac{1}{4}\sqrt{ (D+R_A+R_1)(D+R_A-R_1)(D-R_A+R_1)(-D+R_A+R_1) } \end{array} .$$
Nous pouvons, de la même façon déterminer les coordonnées de \(P_2\):
$$ \left \{ \begin{array}{ll} x_2= \frac{x_B+x_A}{2} + \frac{(x_A-x_B)({R_B}^2-{R_2}^2)}{2D^2} \pm 2\frac{y_B-y_A}{D^2}\sigma_2 \\ y_2= \frac{y_B+y_A}{2} + \frac{(y_A-y_B)({R_B}^2-{R_2}^2)}{2D^2} \pm 2\frac{x_B-x_A}{D^2}\sigma_2 \end{array} \right .$$
avec
$$ \begin{array}{ll} D = \sqrt{ (x_B-x_A)^2 + (y_B-y_A)^2 } \\ L = \sqrt { D^2 - (R_B \pm R_A)^2 } \\ R_2= \sqrt{L^2+{R_A}^2} \\ \sigma_2=\frac{1}{4}\sqrt{ (D+R_B+R_2)(D+R_B-R_2)(D-R_B+R_2)(-D+R_B+R_2) } \end{array} .$$
Un test rapide sous Matlab confirme les résultats :
Un test rapide sous Matlab confirme les résultats :