Midcircle

Author

Eric W. Weisstein
January 16, 2006

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/Midcircle.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/Midcircle.html.

©2006 Wolfram Research, Inc. except for portions noted otherwise

Code

TangentLines[Circle[x1_List,r1_],Circle[x2_List,r2_]]:=Module[{t1,tx1,ty1,t2,tx2,ty2},t1={tx1,ty1};
t2={tx2,ty2};
Line/@Select[{t1,t2}/.Solve[{(t1-x1).(t2-t1)==0,#.#&[t1-x1]==r1^2,(t2-x2).(t2-t1)==0,#.#&[t2-x2]==r2^2},Flatten[{t1,t2}]],Function[f,#==0&/@And@@Flatten[Im[f]]]]]

Graphic

Intersecting

TangentLines@@circs

?LongestLine

LongestLine[Append[#,Coordinates[ex]]]&/@Coordinates/@Take[TangentLines@@circs,{1,4}]

circs={Circle[{0,0},1],Circle[{2,0},1.7]};
ex=ExternalSimilitudeCenter@@circs;
in=InternalSimilitudeCenter@@circs;
i=Intersections@@circs;
tl=TangentLines@@circs;
Show[Graphics[{
{Blue,circs,
{Dashing[{.02}],Line[{tl[[#,1,2]],ex[[1]]}]&/@{1,4}}
},
{Red,
icircs=Circle[Coordinates[#],Distance[#,i[[1]]]]&/@{ex,in}
},
PointLabels[Join[
{
{ex,"O",Red},
{in,"O'",Red}
},
Append[#,Blue]&/@Transpose[{i,{"(Subscript[I, 1])","(Subscript[I, 2])"}}],
Append[#,Blue]&/@Transpose[{Center/@circs,{"(Subscript[O, 1])","(Subscript[O, 2])"}}]
],LabelOffset->.3]
}],AspectRatio->Automatic]

circs

Invert@@@Transpose[{circs,icircs}]//Chop

Tangent

circs={Circle[{0,0},1],Circle[{3,0},2]};
ex=ExternalSimilitudeCenter@@circs;
in=InternalSimilitudeCenter@@circs;
i=Intersections@@circs;
tl=TangentLines@@circs;
Show[Graphics[{
{Blue,circs,
{Dashing[{.02}],Line[{tl[[#,1,2]],ex[[1]]}]&/@{3,4}}
},
{Red,
icircs=Circle[Coordinates[#],Distance[#,i[[1]]]]&/@{ex,in}
},
PointLabels[Join[
{
{ex,"O",Red},
{in,"O'",Red}
},
Append[#,Blue]&/@Transpose[{Center/@circs,{"(Subscript[O, 1])","(Subscript[O, 2])"}}]
],LabelOffset->.25]
}],AspectRatio->Automatic,PlotRange->All]

icircs

Invert@@@Transpose[{circs,icircs}]//Chop

Disjoint

circs={Circle[{0,0},.5],Circle[{3,0},1.3]};
ex=ExternalSimilitudeCenter@@circs;
in=InternalSimilitudeCenter@@circs;
i=Intersections@@circs;
tl=TangentLines@@circs;
Show[Graphics[{
{Blue,circs,{Dashing[{.02}],Line[{tl[[#,1,2]],ex[[1]]}]&/@{3,4}}
},
{Red,
icircs=Circle[Coordinates[#],Distance[#,i[[1]]]]&/@{ex}
},
PointLabels[Join[
{
{ex,"O",Red}
},
Append[#,Blue]&/@Transpose[{Center/@circs,{"(Subscript[O, 1])","(Subscript[O, 2])"}}]
],LabelOffset->.25]
}],AspectRatio->Automatic]

Invert@@@Transpose[{circs,Table[icircs[[1]],{2}]}//Chop]//Chop

Interior

circs={Circle[{0,0},.5],Circle[{.2,0},1]};
ex=ExternalSimilitudeCenter@@circs;
in=InternalSimilitudeCenter@@circs;
i=Intersections@@circs;
Show[Graphics[{
{Blue,circs},
{Red,
icircs=Circle[Coordinates[#],Distance[#,i[[1]]]]&/@{in}
},
PointLabels[Join[
{
{in,"O",{Red,LabelOffset->{0,-1}.07}}
},
Append[#,Blue]&/@Transpose[{Center/@circs,{"(Subscript[O, 1])","(Subscript[O, 2])"}}]
],LabelOffset->{0,.07}]
}],AspectRatio->Automatic]

Invert@@@Transpose[{circs,Table[icircs[[1]],{2}]}//Chop]//Chop