Inversive Geometry

Part 3: Quandles, Inverting Triangles to Triangles and Inverting into Concentric Circles

Jaime Rangel-Mondragón

This article continues the presentation of a variety of applications around the theme of inversion: quandles, inversion of one circle into another and inverting a pair of circles into congruent or concentric circles.

Introduction

Recent decades have seen a rebirth of geometry as an important subject both in the curriculum and in mathematical and computational research. Dynamic geometry programs have met the demand for visual, specialized computational tools that help bridge the gap between purely visual and algebraic methods. This development has also extended the understanding of the theoretical and computational foundations of geometry, which in turn has stimulated the proliferation of several new branches of geometry, producing a more mature and modern discipline.

In this spirit, these articles [, ] have been written to be useful as additional material in a teaching environment on computational geometry, following the practice of the author in teaching the subject at the beginning university level. This third article includes a section on quandles (algebraic generalizations of inversion) that describes their properties and generates all finite quandles up to order five. Also, we include the construction of a circle inverting one circle into another, followed by a section on the construction of a circle inverting two circles, or a circle and a line, into a pair of concentric circles.

Let a' mean the inverse of the object a in the circle M=⊙(γ,ρ) with center γ and radius ρ, drawn as a red dashed circle.

We repeat the definitions of the functions squareDistance, collinearQ, circleABC and invert from the previous article [].

The function squareDistance computes the square of the Euclidean distance between two given points. (It is more convenient to use the following definition than the built-in Mathematica function SquaredEuclideanDistance.)

squareDistance[h_,k_]:=Chop[(h-k).(h-k)]

The function collinearQ tests whether three given points are collinear. When exactly two of them are equal, it gives True, and when all three are equal, it gives False, because there is no unique line through them.

collinearQ[{a_,b_,c_}]:= (Chop[Det[Append[#,1]&/@{a,b,c}]]==0)

collinearQ[{a_,a_,a_}]=False;

The function circleABC computes the unique circle passing through three given points; if they are collinear, then the function apart is applied first.

The function circleABC[a,b,c] computes the circle passing through the points a, b and c. If the points are collinear, it gives the line through them; if all three points are the same, it returns an error message, as there is no meaningful definition of inversion in a circle of zero radius.

circleABC[{a_,a_,a_}]:="Three coincident points do not define a circle of positive radius."

circleABC[{a_,b_,c_}]:=Line[Take[Union[{a,b,c}],2]]/;collinearQ[{a,b,c}]

circleABC[{a_,b_,c_}]:=Module[{center,x,y},
center=First[{x,y}/.Quiet[If[And@@NumericQ/@Flatten[{a,b,c}],NSolve,Solve][squareDistance[{x,y},a]==squareDistance[{x,y},b]==squareDistance[{x,y},c],{x,y}]]];
Circle[center,Norm[center-a]]]/;Not@collinearQ[{a,b,c}]

The function invert[M,p] computes the inverse of p in a circle ⊙(γ,ρ) or line M. The object p can be a point (including the special point ∞ that inverts to the center γ of M), a circle or a line (specified by two points).

invert[Circle[γ_,_],γ_]:=∞

invert[Circle[γ_,_],∞]:=γ

invert[Circle[γ_,ρ_],p:{_,_}]:=γ+(((ρ^2)(p-γ))/(squareDistance[p,γ]))

invert[M:Circle[γ_,ρ_],Circle[cV_,rV_]]:=Module[
{n=Chop[squareDistance[cV,γ]-(rV^2)],h,k},
If[n==0,
h=invert[M,cV+rV Normalize[cV-γ]];
k={{0,-1},{1,0}}.Normalize[cV-γ];
InfiniteLine[{h+k,h-k}],
Circle[γ+(cV-γ)(ρ^2)/n,rV (ρ^2)/Abs[n]]
]
]

invert[M:Circle[γ_,_],Line[{a_,b_}]]:=
If[Chop[Det[{γ-a,γ-b}]]==0,
InfiniteLine[a,b],
Chop[circleABC[{γ,invert[M,a],invert[M,b]}]]]

invert[M_,InfiniteLine[{a_,b_}]]:=invert[M,Line[{a,b}]]

invert[Line[{w_,z_}],p:{_,_}]:=Module[
{nz=Normalize[z-w]},
2(w+nz.(p-w) nz)-p
]

invert[l:Line[_],Circle[γ_,ρ_]]:=Circle[invert[l,γ],ρ]

invert[l:Line[_],Line[{p_,q_}]]:=Line[{invert[l,p],invert[l,q]}]

invert[l:InfiniteLine[_],x_]:=invert[Line@@l,x]

Quandles

The geometric definition of inversion of circles can be formalized algebraically and thus be generalized. Let A⊳B denote the result of inverting A in B. Quandles arise mostly in knot theory and group theory and are characterized by the following axioms []:

A⊳A

(A⊳M)⊳M=A

(A⊳M)⊳B=(A⊳M)⊳(M⊳B)

The first two axioms correspond to well-known properties of inversion.

The following figure illustrates the third axiom. Red arrows go from the center of the circle to be inverted to the center of its inversion.

Module[{A,M,B,AM,AB,MB,AMB,ABMB},
A=Circle[{5,0},2.5];
M=Circle[{0,0},2];
B=Circle[{2,-5},3];
{AM,AB,MB}={invert[M,A],invert[B,A],invert[B,M]};
{AMB,ABMB}={invert[B,AM],invert[MB,AB]};
Graphics[{A,M,B,AM,AB,MB,AMB,Red,Arrow[{First[A],First[AB]}],Arrow[{First[A],First[AM]}],Arrow[{First[M],First[MB]}],Arrow[{First[AM],First[AMB]}],Arrow[{First[AB],First[ABMB]}],Style[{Text["A",{2.8,2.1}],Text["M",{-1.8,1.8}],Text["B",{-1.1,-3.3}]},Italic,Black,16]}]
]

A set equipped with a binary operation ⊳ whose elements satisfy these three axioms is called an involutory quandle, or quandle for short. The operation ⊳ is neither commutative nor associative. Inversive geometry applied to generalized circles is an example of an infinite quandle. There are other sets that also verify the axioms; for example, if (t^2)=1, the operation A⊳B=t A+(1-t)B is a quandle.

Module[{A,B,M,t},
A_⊳B_:=t A+(1-t)B;
FullSimplify[{
A⊳A==A,
(A⊳M)⊳M==A,
((A⊳M)⊳B)==((A⊳B)⊳(M⊳B))
},(t^2)==1]]

Finite quandles are somewhat curious; for instance, the following is the operation matrix corresponding to a six-element quandle (due to Takasaki).

MatrixForm[Table[Mod[2j-i,6],{i,0,5},{j,0,5}]]

This verifies that under any modulus, this structure generalizes to a quandle.

Module[{A,B,M,n},
A_⊳B_:=Mod[2B-A,n];
FullSimplify[{
A⊳A==A,
(A⊳M)⊳M==A,
((A⊳M)⊳B)==((A⊳B)⊳(M⊳B))
},0≤A<n]]

A matrix M corresponding to a finite quandle has different elements appearing in its main diagonal and also different elements in each of its columns (i.e. for all elements A, B, there exists a unique Q such that A⊳Q=B). Also, for every triple i,j,k of indices, we must have

M (M (i,j),k)=M (M (i,k),M (j,k)).

Is there an arrangement of generalized circles that forms a finite quandle under mutual inversion, that is, is closed by inversion? Any two orthogonal circles form a two-element quandle. Also, consider a set of n lines equally spaced, passing through the origin. This set is closed under reflection. Taking n=6 and labeling the lines from 0 to 5 gives the Takasaki matrix. A circle centered at the origin and n-1 lines equally spaced produce a set closed under inversion; if we label the circle as n, the matrix in this case has all elements in the last row equal to n-1. Let us now generate all finite quandles of size n≤4.

axiom2[m_]:=Module[{n=Length[m],i,j},
And@@Flatten[Table[m[[m[[i,j]],j]]==i,{i,n},{j,n}]]]

axiom3[m_]:=Module[{n=Length[m],i,j,k},
And@@Flatten[Table[m[[m[[i,j]],k]]==m[[m[[i,k]],m[[j,k]]]],{i,n},{j,n},{k,n}]]]

Module[{p,t,n,i},
MatrixForm/@Flatten[Table[
p=Table[Select[Permutations[Range[n]],#[[i]]==i&],{i,n}];
t=Tuples[Range[(n-1)!],n];
Select[Map[Transpose@MapIndexed[p[[First[#2],#1]]&,#]&,t],axiom3[#]&],{n,4}],1]]

Computing the number of finite quandles by this method is computationally expensive, as the variable t is of length ((((n-1)!))^n). With n=5, using the previous code, it took about an hour reporting 404 instances (time measured on a Mac Pro 3.1 GHz, 16 Gb).

The following is an example of a set of four circles closed under inversion (that is, any circle in the set inverted in any other circle results in a circle in the set), also called the inversive group of three points []. The function getM[a,b,c] computes a disk or a line M passing through point c such that points a and b form an inverse pair under inversion in M. In the following Manipulate, you can drag a locator to modify one of the four circles; the others are computed accordingly.

The function perturb slightly varies three points that are coincident or collinear.

perturb[{a_,b_,c_}]:=If[
Chop[Det[{b-a,c-a}]]!=0,
{a,b,c},
{a,b,c}+RandomReal[{-0.01,0.01},{3,2}]
]

getM[{a_,b_,c_}]:=Module[{α,q,u},
If[Chop[Norm[c-a]-Norm[c-b]]==0,u={{0,-1},{1,0}}.Normalize[b-a];{Black,InfiniteLine[{c+u,c-u}]},
α=(((Norm[b-c])^2)/((-a+b). (a+b-2 c)));
q=α a+(1-α)b;
Disk[q,Norm[q-c]]]]

Manipulate[
Module[{a,b,c},
{a,b,c}=perturb[abcPoints];
Graphics[{EdgeForm[Thick],Lighter@Blue,Opacity[.5],Disk@@circleABC[{a,b,c}],ColorData[2,5],getM[{a,b,c}],getM[{a,c,b}],getM[{b,c,a}]},PlotRange->10]],

Style["Drag the locators.",10],
{{abcPoints,{{-1.3,-3.7},{-.2,-1.1},{6.2,-.2}}},Locator},SaveDefinitions->True
]

For more on quandles, see [].

Inverting a Circle into Another

Throughout this section, let H=⊙(A,α) and K=⊙(B,β) be circles with δ=|AB|, and let the inversion circle be M=⊙(γ,ρ), such that H⊳K. Call such an M the midcircle of H and K. There are three cases, depending on the relative positions of H and K.

Grid[{{
Framed@Graphics[{EdgeForm[Thick],Opacity[.7],Lighter@Blue,Disk[],ColorData[2,5],Disk[{2,0},.5]},PlotLabel->"Case 1\n",PlotRange->{{-1.1,2.7},{-1,1}},ImageSize->130],
Framed@Graphics[{EdgeForm[Thick],Opacity[.7],Lighter@Blue,Disk[],ColorData[2,5],Disk[{.2,0},.5]},PlotLabel->"Case 2\n",PlotRange->{-.8+{-1.1,2.7},{-1,1}},ImageSize->130],
Framed@Graphics[{EdgeForm[Thick],Opacity[.7],Lighter@Blue,Disk[],ColorData[2,5],Disk[{1,0},.5]},PlotLabel->"Case 3\n",PlotRange->{-.8+{-1.1,2.7},{-1,1}},ImageSize->130]
}}]

If α=β, a reflection takes H into K, so assume α≠β from now on.

Case 1. H and K Are External to Each Other

Theorem 1

Let H and K not intersect and be external to each other; say H is to the left of K and assume α>β. Then γ is at a distance α δ/(α-β) from A along the line AB, is to the right of B, and (ρ^2)=α β (-1+((δ^2)/(((α-β))^2))).

Additionally, M is orthogonal to every circle L tangent to both H and K, and M is orthogonal to every circle J orthogonal to H and K.

Assume without loss of generality that H=⊙((0,0),α) and K=⊙((δ,0),β). Draw two parallel radii from A and B defining variable points D and F. Extend the lines DF and AB to intersect at point C. From similar triangles, |AC|/α=|BC|/β, and we easily conclude that C=(α δ/(α-β),0).

Extend the lines AE and BF to intersect at the point G. Construct the circle L=⊙(G,|GE|), which is tangent to H and K.

The first part of the following output checks that the circle M=⊙(C,ρ) inverts H into K, with ρ=(Sqrt[|GC((|)^2)-|GF((|)^2)]).

The second part checks that (ρ^4)=|EC((|)^2)|FC((|)^2), so that E and F invert to each other in M.

The circle M separates H and K, while L connects them, so M intersects L in two points X and Y, each of which is fixed under inversion in M. Since X, Y and E on L invert into X, Y and F, also on L, L inverts to itself (though not pointwise), and L and M are orthogonal.

Let J be orthogonal to H and K, so that both H and K are invariant under inversion in J. If M inverts into M' in J, then H and K invert into each other in M', so M'=M, and M and J are orthogonal.

Module[
{Cx,Cy,Dx,Dy,ex,ey,Ex,Ey,Fx,Fy,Gx,Gy,F,G,ρ},
{Cx,Cy}={α δ/(α-β),0};
{Dx,Dy}=α{Cos[ω],Sin[ω]};
{Ex,Ey}=Last[{ex,ey}/.FullSimplify[Solve[{(ex^2)+(ey^2)==(α^2),Det[{{Dx,Dy,1},{ex,ey,1},{Cx,Cy,1}}]==0},{ex,ey}],(α>β>0)∧(δ>0)∧(π/2<ω<π)]];
F={Fx,Fy}={δ,0}+β{Cos[ω],Sin[ω]};
G=First[{Gx,Gy}/.Simplify[Solve[Det[{{0,0,1},{Ex,Ey,1},{Gx,Gy,1}}]==Det[{{δ,0,1},{Fx,Fy,1},{Gx,Gy,1}}]==0,{Gx,Gy}]]];
(* This is the candidate radius. *)
ρ=FullSimplify[√(squareDistance[G,{Cx,Cy}]-squareDistance[G,F]),(α>β>0)∧(δ>0)];
{
FullSimplify[invert[Circle[{Cx,Cy},ρ],Circle[{0,0},α]],(α>β>0)∧(δ>0)∧(δ-β>α)],
Simplify[ExpandAll[squareDistance[{Ex,Ey},{Cx,Cy}]squareDistance[{Fx,Fy},{Cx,Cy}]]==ρ^4
]
}
]

This notation is followed in the next Manipulate. (A circle J orthogonal to H and K is not drawn.)

Manipulate[
Module[{c,e,f,h},
If[δ-β<1,δ=β+1];
c=δ/(1-β);
e={-Cos[ω],Sin[ω]};
f={δ,0}+β e;
h={δ,0}+(((1+δ-β) (-1+δ+β))/(2 (1-β+δ Cos[ω])))e;
Graphics[{
EdgeForm[Thick],Opacity[.7],Lighter@Blue,Disk[],
ColorData[2,5],Disk[{δ,0},β],
EdgeForm[Thin],Black,Circle[h,Norm[h-f]],
Opacity[1],If[li,{
Yellow,
Disk[{0,0},β/3,{0,ArcTan@@e}],
Disk[{δ,0},β/3,{0,ArcTan@@e}],
Black,
Line[{{-2,0},{6,0}}],
Line[{{0,0},e,{c,0}}],
Line[{{δ,0},h,{0,0}}]},
{}
],
Red,Disk[e,.05],
{Dashed,Circle[{c,0},(Sqrt[(c-(δ+β))(c+1)])]},
Black,If[la,
{
Arrowheads[.02{-1,1}],Arrow[{{0,-.25},{δ,-.25}}],Arrow[{{0,-.5},{δ/(1-β),-.5}}],Map[Text[Style[First[#],12],Last[#],{1,1}]&,{{"A",{0,0}},
{"B",{δ,0}},
{"C",{c,0}},
{"α",e/2},
{"β",{δ,0}+ .5 β e},
{"c",{δ/(2(1-β)),-.5}},
{"δ",{δ/2,-.25}},
{"D",1.2e},
{"E",Normalize[h]+.2},
{"G",h+.2},
{"F",f+{0,.3}},
{Style["H",Italic],.8{-1,-1}},
{Style["K",Italic],{δ,-β-0.2}}
}
]
}
]
},PlotRange->{{-1.4,6},{-1.4,3}},ImageSize->{450,300}]],
{{δ,2.3,Row[{"distance δ between circles ",Style["H",Italic]," and ",Style["K",Italic]}]},1,6,Appearance->"Labeled"},
{{β,.56,Row[{"radius β of small circle ",Style["K",Italic]}]},0,.99,Appearance->"Labeled"},
{{ω,1.13,"position of red point D"},0,3.13-ArcCos[(1-β)/δ],Appearance->"Labeled"},
Row[{Control[{{la,False,"labels"},{True,False}}],Control[{{li,True,"     lines"},{True,False}}]}],SaveDefinitions->True]

Case 2. K Is inside H

Theorem 2

Suppose H and K do not intersect, and let K be inside H. Then γ is at a distance α δ/(α+β) from A along the line joining the centers, and (ρ^2)=α β (1-((δ^2)/(((α+β))^2))).

To verify M inverts the circle M=⊙((0,0),α) into the circle ⊙((δ,0),β), proceed as in the previous section.

Module[{Cx,Cy,ρ},
{Cx,Cy}={α δ/(α+β),0};
ρ=(Sqrt[α β (1-((δ^2)/(((α+β))^2)))]);
FullSimplify[invert[Circle[{Cx,Cy},ρ],Circle[{0,0},α]],(α>0)∧(β>0)∧(δ>0)∧(α>δ+β)]
]

The next Manipulate follows the previous construction of the midcircle of H and K.

Manipulate[
Module[{c,e,f,h,g},
If[β+δ>1,δ=1-β];
c=δ/(1+β);
e={-Cos[ω],Sin[ω]};
f={δ,0}-β e;
h={((2 (1+β) δ+((((1+β))^2)+(δ^2)) Cos[ω])/((((1+β))^2)+(δ^2)+2 (1+β) δ Cos[ω])),(((-(((1+β))^2)+(δ^2)) Sin[ω])/((((1+β))^2)+(δ^2)+2 (1+β) δ Cos[ω]))};
g={((2 (1+β) δ+((((1+β))^2)+(δ^2)) Cos[ω])/(2 (1+β+δ Cos[ω]))),-((((((1+β))^2)-(δ^2)) Sin[ω])/(2 (1+β+δ Cos[ω])))};
Graphics[{EdgeForm[Thick],Opacity[.6],Lighter@Blue,Disk[],ColorData[2,5],Disk[{δ,0},β],Opacity[1],EdgeForm[Thin],Black,Circle[g,Norm[g-h]],If[li,{Black,Line[{{-1,0},{1,0}}],Line[{{0,0},e,h,{0,0}}],Line[{{δ,0},g}],Yellow,Disk[{0,0},β/3,{ArcTan@@e,π}],Disk[{δ,0},β/3,{π+ArcTan@@e,2π}]},{}],Red,{Dashed,Circle[{c,0},(Sqrt[(c-δ+β)(c+1)])]},Disk[e,.025],Black,If[la,{Arrowheads[.02{-1,1}],Arrow[{{0,-.1},{c,-.1}}],Arrow[{{0,.2},{δ,.2}}],Map[Text[Style[First[#],12],Last[#],{1,1}]&,{
{"A",{0,0}},
{"B",{δ,.05}},
{"C",{c,.05}},
{"α",e/2},
{"β",{δ,.1}+.5(f-{δ,0})},
{"c",{.5 c,-.1}},
{"δ",{δ/2,.3}},
{"D",1.1e},{"G",g},
{"E",h+{.1,0}},
{"F",f+{.02,.1}},
{Style["H",Italic],-0.8{1,1}},
{Style["K",Italic],{δ-0.5β,-β}}}]
}]},PlotRange->{{-1.4,1.05},{-1.1,1.1}}]],

{{δ,.45,Row[{"distance δ between circles ",Style["H",Italic]," and ",Style["K",Italic]}]},0,1,Appearance->"Labeled"},
{{β,.4,Row[{"radius β of small circle ",Style["K",Italic]}]},.001,.99,Appearance->"Labeled"},
{{ω,1.4,"position of red point D"},0,π,Appearance->"Labeled"},
Row[{
Control@{{la,False,"labels"},{True,False}},Control@{{li,True,"     lines"},{True,False}},
Spacer[320]
}],SaveDefinitions->True]

Case 3. H and K Intersect

Theorem 3

Let H and K intersect. Then there are two midcircles taking H to K, corresponding to the midcircles in theorems 1 and 2.

To verify this, H is inverted in the two circles from theorems 1 and 2.

FullSimplify[invert[Circle[C1={α δ/(α-β),0},(Sqrt[α β (-1+((δ^2)/(((α-β))^2)))])],Circle[{0,0},α]],(α>0)∧(β>0)∧(δ>0)∧(α≠β)∧(Abs[α-β]<δ<α+β)]

FullSimplify[invert[Circle[{α δ/(α+β),0},(Sqrt[α β (1-((δ^2)/(((α+β))^2)))])],Circle[{0,0},α]],(α>0)∧(β>0)∧(δ>0)∧(α≠β)∧(Abs[α-β]<δ<α+β)]

The following Manipulate shows the construction of both midcircles following the previous notation.

Manipulate[
Module[{c1,c2,r1,r2,x,y,i,h,e,f,g},
If[δ-β>1,δ=1+β];
If[δ+β<1,δ=1-β];
c1=δ/(1-β);
c2=δ/(1+β);
{r1,r2}=Chop/@{(Sqrt[ β (-1+(c1^2))]),(Sqrt[β (1-(c2^2))])};
x=((1-(β^2)+(δ^2))/(2 δ));
y=(Sqrt[1-(x^2)]);
{i,h}={{x,y},{x,-y}};
e={-Cos[ω],Sin[ω]};
f={δ,0}+β e;
g={δ,0}-β e;
Graphics[{
EdgeForm[Thick],Opacity[.6],
Lighter@Blue,Disk[],
ColorData[2,5],Disk[{δ,0},β],
Opacity[1],EdgeForm[Thin],
If[
li,
{Yellow,Disk[{0,0},β/3,{ArcTan@@e,π}],Disk[{δ,0},β/3,{π+ArcTan@@e,2π}],Black,Line[{{-1,0},{3,0}}],Line[{e,-e,{c1,0},e,g,f}]},
{}
],
Red,Disk[e,.025],
{Dashed,Circle[{c1,0},r1],Circle[{c2,0},r2]},
Black,If[
la,
{
Arrowheads[.02{-1,1}],
Arrow[{{0,-.2},{c1,-.2}}],
Arrow[{{0,-.3},{c2,-.3}}],
Arrow[{{0,.1},{δ,.1}}],
Map[
Text[Style[First[#],12],Last[#],{1,1}]&,
{
{"A",{0,0}},
{"B",{δ,.05}},
{"(Subscript[c, 1])",{.5δ,-.2}},
{"(Subscript[c, 2])",{.5 δ,-.3}},
{"α",e/2},
{"β",{δ,.1}+.5(f-{δ,0})},
{"E",-e-{0,.05}},
{"δ",{δ/2,.1}},
{"D",1.2e},
{"G",g-{-.1,.1}},
{"E",h+{0,-.05}},
{"F",f+{.02,.2}}
}
]
}
]
},PlotRange->{{-1.3,3},{-1.2,1.2}},ImageSize->{450,300}]],
{{δ,1.12,Row[{"distance δ between circles ",Style["H",Italic]," and ",Style["K",Italic]}]},0,2,Appearance->"Labeled"},
{{β,.4,Row[{"radius β of small circle ",Style["K",Italic]}]},.001,.99,Appearance->"Labeled"},
{{ω,1.4,"position of red point D"},0,π,Appearance->"Labeled"},
Row[{
Control@{{la,False,"labels"},{True,False}},Control@{{li,True,"     lines"},{True,False}}
}],SaveDefinitions->True]

Inverting Two Circles into Congruent Circles

Theorem 4

Every circle centered on the midcircle M of H and K inverts H and K into two congruent circles.

Proof

Let L be a circle centered on the midcircle M. Inverting M in L, we obtain a line t (drawn in black in the following Manipulate). As M separates H and K, t must separate H' and K'; in fact, t must invert H' into K'. As t is a line, inversion in t is reflection, hence H' and K' are congruent. □

The following Manipulate shows additionally that the brown line joining the centers of H and K inverts into a brown circle orthogonal to the blue line and to the congruent circles H' and K', as was expected.

Manipulate[
Module[{A,B,H,cK,δ,c1,c2,r1,r2,c,p,L},
{A,B}=AB;
{H,cK}={Circle[A,α],Circle[B,β]};
δ=Norm[A-B];
c1=A+α δ/(α-β)Normalize[B-A];
c2=A+α δ/(α+β)Normalize[B-A];
r1=α β (-1+((δ^2)/(((α-β))^2)));
r2=α β (1-((δ^2)/(((α+β))^2)));
c=Flatten[{If[r1>0,Circle[c1,(Sqrt[r1])],{}],If[r2>0,Circle[c2,(Sqrt[r2])],{}]}];
p=c[[1,1]]+c[[1,2]]{Cos[ω],Sin[ω]};
L=Circle[p,r3];
Graphics[{
EdgeForm[Thick],Opacity[.6],
Lighter@Blue,Disk@@H,
ColorData[2,5],Disk@@cK,
Opacity[1],EdgeForm[Thin],
Black,invert[L,H],invert[L,cK],
Pink,L,
Brown,InfiniteLine[AB],invert[L,Line[AB]],
Black,invert[L,First[c]],
Red,Disk[p,0.035],
Dashed,c
},PlotRange->{{-1.1,5},{-3,3}}]],
{{α,1,"radius α of blue circle H"},0.01,2,Appearance->"Labeled"},
{{β,0.5,"radius β of yellow circle K"},0.01,2,Appearance->"Labeled"},
Style[Row[{"inversive circle ",Style["L",Italic]," (pink) on ",Style["M",Italic]," (dashed red)"}],Bold],
{{ω,2.12,"center"},0,2π,Appearance->"Labeled"},
{{r3,1.35,"radius"},0.01,2,Appearance->"Labeled"},
Style["Drag the locators.",10],
{{AB,{{0,0},{2,-0.5}}},Locator},SaveDefinitions->True]

For more on the geometry of circles and inversion, see [, , ].

Inverting Two Circles into Concentric Circles

The radical axis of two circles is the locus of a point from which tangents to the two circles have the same length. It is always a straight line perpendicular to the line joining the centers of the two circles. If the circles intersect, the radical axis is the line through the points of intersection. If the circles are tangent, it is their common tangent. We will need the following property of the radical axis of two circles [, , ].

Theorem 5

For H and K, let the point Z=A+α(B-A), where α=((a^2)-(b^2)+(d^2))/(2(d^2)). Construct the line z at Z perpendicular to the line AB. Then z is the radical axis of H and K.

This checks that any point on z has tangents to H and K of equal length.

Module[{Ax,Ay,A,Bx,By,B,d2,i,j,Cc},
A={Ax,Ay};
B={Bx,By};
d2=squareDistance[A,B];
i=((α^2)-(β^2)+d2)/(2 d2);
Cc=A+i(B-A)+j{{0,-1},{1,0}}.(B-A);
Simplify[(α^2)-(β^2)==squareDistance[A,Cc]-squareDistance[B,Cc]]
]

Theorem 6

With Z as in theorem 5, the circle J=⊙(P,(Sqrt[(α^2)-|AZ((|)^2)])) is orthogonal to H and K.

A few words on the assumptions in the following Simplify to verify theorem 6. The first three, α>0, β>0, δ>0, hold in general. The fourth, (((-(α^2)+(β^2)-(δ^2)))^2)>4 (α^2) (δ^2), is for the Solve that computes U to find a solution. The next two, (α^2)≠((β((β^2)-β δ-(δ^2)))/(β+δ)) and (α^2)≠((β((β^2)+β δ-(δ^2)))/(β+δ)), are for the inversion of H to be feasible, and the last two are for the inversion of K to be feasible.

assumptions=(α>0)∧(β>0)∧(δ>0)∧((((-(α^2)+(β^2)-(δ^2)))^2)>4 (α^2) (δ^2))∧((β^2)≠(((α+δ))^2))∧((β^2)≠(((α-δ))^2))∧((α^2)≠((β((β^2)-β δ-(δ^2)))/(β+δ)))∧((α^2)≠((β((β^2)+β δ-(δ^2)))/(β+δ)));

Module[
{A,B,i,Z,r2,ρ,M,H,K},
A={0,0};
B={δ,0};
i=((α^2)-(β^2)+(δ^2))/(2 (δ^2));
Z=A+i(B-A);
r2=squareDistance[A,Z]-(α^2);
ρ=(Sqrt[r2]);
J=Circle[Z,ρ];
H=Circle[A,α];
K=Circle[B,β];
Simplify[{H==invert[J,H],K==invert[J,K]},assumptions]
]

Theorem 7

Two nonconcentric, nonintersecting circles can be inverted into two concentric circles [].

Proof

Let H and K be the given circles. Choose a circle centered at a point P on the radical axis with radius equal to the length of the tangent from P to H. This circle intersects the line AB in two points U, V. Any circle with U or V as center inverts H and K into concentric circles. □

The next Manipulate shows the circles H in blue and K in yellow, their radical axis, a point P on the radical axis, the circle J=⊙(P,(α^2)-|AP((|)^2)) now moving freely on the radical axis, the circle of inversion M centered at one of the intersections of J and AB, and two concentric circles obtained by inverting H and K in M. Only one of the inversive circles M is shown; the other is a mirror image in the radical axis.

Manipulate[
Module[{A,B,Z,H,cK,δ,i,P,r2,ok,U,x,M},
{A,B}=AB;
δ=Norm[A-B];
If[Abs[Chop[δ]]<0.001,A=A+{0.01,0.01};δ=Norm[A-B]];
{H,cK}={Circle[A,α],Circle[B,β]};
i=((α^2)-(β^2)+(δ^2))/(2 (δ^2));
Z=A+i(B-A);
P=Z+ω{{0,-1},{1,0}}.(B-A);
r2=squareDistance[P,A]-(α^2);
ok=(r2>0)∧((δ>α+β)∨(δ+β<α));
U=First[A+x(B-A)/.Quiet@NSolve[squareDistance[A+x(B-A),P]==r2,x]];
M=Circle[U,ρ];
Graphics[{
EdgeForm[Thick],Opacity[.6],
Lighter@Blue,Disk@@H,
ColorData[2,5],Disk@@cK,
Opacity[1],EdgeForm[Thin],
Gray,Line[{A,B}],
Black,InfiniteLine[{Z,Z+{{0,-1},{1,0}}.(B-A)}],
Disk[P,0.05],
If[
ok,
{
Circle[P,(Sqrt[r2])],
Blue,invert[M,Circle[A,α]],invert[M,Circle[B,β]],
Red,Dashed,Circle[U,ρ]
}
]
},PlotRange->{{-1.1,5},{-3,3}}]],
{{α,1,Row[{"radius of ",Style["H",Italic]}]},0.01,3,Appearance->"Labeled"},
{{β,0.5,Row[{"radius of ",Style["K",Italic]}]},0.01,2,Appearance->"Labeled"},
{{ω,0.25,"move point P on radical axis"},-2,2,Appearance->"Labeled"},
{{ρ,0.38,"radius ρ of inversive circle"},0.01,2,Appearance->"Labeled"},
Style["Drag the locators.",10],
{{AB,1.{{1,0},{3,-0.5}}},Locator},SaveDefinitions->True]

The center U of the inversive circle M does not depend on the position of P. This checks the inverses of the circles H and K are concentric.

Module[
{A,B,i,P,r2,xx,ρ},
A={0,0};
B={δ,0};
i=((α^2)-(β^2)+(δ^2))/(2 (δ^2));
P=A+i(B-A);
r2=squareDistance[P,A]-(α^2);U=First[A+xx(B-A)/.Solve[squareDistance[A+xx(B-A),P]==r2,xx]];
{cir1,cir2}=Simplify[{invert[Circle[U,ρ],Circle[A,α]],invert[Circle[U,ρ],Circle[B,β]]},assumptions];
Simplify[First[cir1]==First[cir2]]
]

Let V be the center of the other inversive circle.

Theorem 8

The inverse of U in H or K is V.

Module[
{A,B,i,Z,r2,xx,ρ},
A={0,0};
B={δ,0};
i=((α^2)-(β^2)+(δ^2))/(2 (δ^2));
Z=A+i(B-A);
r2=squareDistance[A,Z]-(α^2);U=First[A+xx(B-A)/.Solve[squareDistance[A+xx(B-A),Z]==r2,xx]];
{cir1,cir2}=Simplify[{invert[Circle[U,ρ],Circle[A,α]],invert[Circle[U,ρ],Circle[B,β]]},assumptions];
V=2Z-U;
Simplify[(V==invert[Circle[A,α],U])∧(V==invert[Circle[B,β],U])]
]

Line and Circle into Concentric Circles

A line and a circle that do not intersect or a pair of nonintersecting circles can be inverted into two concentric circles. The key is to obtain a common orthogonal circle and then choose the inversion center at its intersection with a particular line [].

Theorem 9

Let the circle A((Subscript[c, 1]),(Subscript[r, 1])) and the nonintersecting line l be such that (Subscript[c, 2]) on l is the nearest point to A, making l perpendicular to the line (Subscript[c, 1])(Subscript[c, 2]). Then the circle B((Subscript[c, 2]),(Subscript[r, 2])), where ((Subscript[r, 2])^2)=|(Subscript[c, 2])-(Subscript[c, 1])((|)^2)-((Subscript[r, 1])^2), is orthogonal to both A and l. Either of the two intersections of B with the line (Subscript[c, 1])(Subscript[c, 2]) can serve as the center of a circle of inversion inverting A and l into concentric circles.

With[{xx=xx,rr=rr},
Manipulate[
Module[{r2,M,l},
If[xx<rr,xx=rr];
r2=(Sqrt[(xx^2)-(rr^2)]);
M=Circle[{r2,0},ρ];
Graphics[{
l=InfiniteLine[{{0,0},{0,1}}],Circle[{xx,0},rr],
Blue,invert[M,l],invert[M,Circle[{xx,0},rr]],
Gray,Circle[{0,0},r2],
Dashed,Red,M
},PlotRange->{{-.2,4},{-2,2}}]],

{{xx,2,Row[{"move circle ",Style["A",Italic]}]},rr,4,Appearance->"Labeled"},
{{rr,0.9,Row[{"radius of ",Style["A",Italic]}]},0,4,Appearance->"Labeled"},
{{ρ,0.5,Row[{"radius of inversive circle ",Style["M",Italic]}]},0.01,4,Appearance->"Labeled"},SaveDefinitions->True]
]

Acknowledgments

I am grateful to the Center of Investigation and Advanced Studies in Mexico City for the use of its extensive library and to Wolfram Research for providing an ideal environment to develop this series of articles.

References

J. Rangel-Mondragon, “Inversive Geometry: Part 1,” The Mathematica Journal, 15, 2013. doi:10.3888/tmj.15–7.

J. Rangel-Mondragon, “Inversive Geometry: Part 2,” The Mathematica Journal, 18, 2014. doi:10.3888/tmj.18-5.

F. Morley and F. V. Morley, Inversive Geometry, New York: Ginn and Company, 1933.

B. Ho and S. Nelson, "Matrices and Finite Quandles," Homology, Homotopy and Applications, 7(1), 2005 pp. 197–208. doi:10.4310/HHA.2005.v7.n1.a11.

H. S. M. Coxeter, “Inversive Geometry,” Educational Studies in Mathematics, 3(3), 1971 pp. 310–321. doi:10.1007/BF00302300.

D. Pedoe, Geometry, A Comprehensive Course, New York: Dover Publications Inc., 1988.

H. S. M. Coxeter and S. L. Geitzer, Geometry Revisited, New York: Random House, 1967.

E. W. Weisstein. ”Radical Line” from MathWorld–A Wolfram Web Resource. mathworld.wolfram.com/RadicalLine.html.

S. R. Murthy. "Radical Axis and Radical Center" from the Wolfram Demonstrations Project–A Wolfram Web Resource. demonstrations.wolfram.com/RadicalAxisAndRadicalCenter.

J. Rangel-Mondragón, “The Arbelos,” The Mathematica Journal, 16, 2014. doi:10.3888/tmj.16-5.

D. E. Blair, Inversion Theory and Conformal Mapping, Providence, RI: American Mathematical Society, 2000.