Two intersecting circles $H$ and $K$ are orthogonal if one of them (say $H$) belongs to a set of three mutually tangent circles that touch each other at three distinct points of $K$.
The following Manipulate shows the central circle is orthogonal to the black one by showing the other two circles (blue).- squareDistance[h_, k_] := Chop[(h - k) . (h - k)];
- Manipulate[
- Module[{rc, p, q, r, s, x, y, d, e, re},
- If[c . c < 1, c = 1.001 Normalize[c]];
- rc = Sqrt[c . c - 1];
- {p, q} = {x, y} /.
- Simplify[
- Quiet@NSolve[{x^2 + y^2 == 1,
- squareDistance[c, {x, y}] == rc^2}, {x, y}]];
- d = p + rd Normalize[p - c];
- {r, s} = {x, y} /.
- Simplify[
- Quiet@NSolve[{x^2 + y^2 == 1,
- squareDistance[d, {x, y}] == rd^2}, {x, y}]];
- {r} = Complement[{r, s}, {p, q},
- SameTest -> (Norm[#1 - #2] < 0.001 &)];
- re = Norm[q - r]/Norm[Normalize[r - d] - Normalize[q - c]];
- e = q + re Normalize[q - c];
- Graphics[{Circle[{0, 0}, 1], Circle[c, rc], Blue, Circle[d, rd],
- Circle[e, re], Red, Disk[#, 0.06] & /@ {p, q, r}},
- PlotRange -> {{-4, 4}, {-4, 4}}]],
- {{c, {-2., 1}}, Locator},
- {{rd, 1.5, "radius of blue circles"}, 0.01, 5,
- Appearance -> "Labeled"},
- Style["Drag the locator.", 10], SaveDefinitions -> True
- ]
Copy the Code |