アイキャッチ「共通接線」
共通接線が4本になる図をベースに繰り返し処理を入れてアレンジしてみました。このページのアイキャッチです。プリントには使えませんが、こんな遊びも出来るということで。
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Bの円
\tkzDefPoint(6,0){O'}
\tkzDefPoint(4,0){B}
% 内側でクロスする接点の交点Iを取得
\tkzDefSimilitudeCenter[int](O,A)(O',B)
\tkzGetPoint{I}
% Iから2つの円に接線を引いたときの接点C,D および C',D' を取得
\tkzDefLine[tangent from = I](O,A)
\tkzGetPoints{C}{D}
\tkzDefLine[tangent from = I](O',B)
\tkzGetPoints{C'}{D'}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,A)(O',B)
\tkzGetPoint{J}
% Jから2つの円に接線を引いたときの接点E,F および E',F' を取得
\tkzDefLine[tangent from = J](O,A)
\tkzGetPoints{E}{F}
\tkzDefLine[tangent from = J](O',B)
\tkzGetPoints{E'}{F'}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',B)
%内側でクロスする接線
\tkzDrawSegments[very thick,red,add=.6 and .6](C,C' D,D')
% 外側の接線を描画
\tkzDrawSegments[very thick,blue,add=.5 and .45](E,E' F,F')
% 点を描画
\tkzDrawPoints[size=3,color=red](C,D,C',D')
\tkzDrawPoints[size=3,color=blue](E,F,E',F')
%% ----- 装飾 ----- %%
\foreach \i in {0,1,2,...,39} {
\tkzDefPoint(3-\i*0.06,0){P}
\tkzDrawCircle[opacity=1-\i*0.025](O,P)
\tkzDefPoint(4+\i*0.04,0){Q}
\tkzDrawCircle[opacity=1-\i*0.025](O',Q)
\tkzDefSimilitudeCenter[int](O,P)(O',Q)
\tkzGetPoint{R}
\tkzDefLine[tangent from = R](O,P)
\tkzGetPoints{PX}{PY}
\tkzDefLine[tangent from = R](O',Q)
\tkzGetPoints{QX}{QY}
\tkzDrawSegments[red,opacity=1-\i*0.025,add=.6 and .6](PX,QX PY,QY)
\tkzDefSimilitudeCenter[ext](O,P)(O',Q)
\tkzGetPoint{R}
\tkzDefLine[tangent from = R](O,P)
\tkzGetPoints{PX}{PY}
\tkzDefLine[tangent from = R](O',Q)
\tkzGetPoints{QX}{QY}
\tkzDrawSegments[blue,opacity=1-\i*0.025,add=.5 and .45](PX,QX PY,QY)
}
\end{tikzpicture}
}
\end{document}

公式など説明に使う図として
共通接線4本(外部)
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Bの円
\tkzDefPoint(7,0){O'}
\tkzDefPoint(5,0){B}
% 内側でクロスする接点の交点Iを取得
\tkzDefSimilitudeCenter[int](O,A)(O',B)
\tkzGetPoint{I}
% Iから2つの円に接線を引いたときの接点C,D および C',D' を取得
\tkzDefLine[tangent from = I](O,A)
\tkzGetPoints{C}{D}
\tkzDefLine[tangent from = I](O',B)
\tkzGetPoints{C'}{D'}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,A)(O',B)
\tkzGetPoint{J}
% Jから2つの円に接線を引いたときの接点E,F および E',F' を取得
\tkzDefLine[tangent from = J](O,A)
\tkzGetPoints{E}{F}
\tkzDefLine[tangent from = J](O',B)
\tkzGetPoints{E'}{F'}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',B)
%内側でクロスする接線
\tkzDrawSegments[very thick,red,add=.5 and .5](C,C' D,D')
% 外側の接線を描画
\tkzDrawSegments[very thick,blue,add=.5 and .5](E,E' F,F')
% 点を描画
\tkzDrawPoints[size=3,color=red](C,D,C',D')
\tkzDrawPoints[size=3,color=blue](E,F,E',F')
%% ----- 確認用ラベル ----- %%
% \tkzDrawPoints[size=3,orange](O,O')
% \tkzLabelPoints(O,O')
% \tkzDrawPoints[size=3,orange](A,B)
% \tkzLabelPoint[left](A){A}
% \tkzLabelPoint[right](B){B}
% \tkzLabelPoints[above left](C,C')
% \tkzLabelPoints[above right](D,D')
% \tkzLabelPoints[below](E,E')
% \tkzLabelPoints[above](F,F')
% \tkzLabelPoint[below,yshift=-3pt](I){I}
\end{tikzpicture}
}
\end{document}

共通接線3本(外接)
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Aの円
\tkzDefPoint(5,0){O'}
% 内側でクロスする接点の交点Iを取得
\tkzDefSimilitudeCenter[int](O,A)(O',A)
\tkzGetPoint{I}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,A)(O',A)
\tkzGetPoint{J}
% Jから2つの円に接線を引いたときの接点E,F および E',F' を取得
\tkzDefLine[tangent from = J](O,A)
\tkzGetPoints{E}{F}
\tkzDefLine[tangent from = J](O',A)
\tkzGetPoints{E'}{F'}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',A)
%内側でクロスする接線(Iにおける共通接線)
\tkzDefRadicalAxis(O,I)(O',I)
\tkzGetPoints{X}{Y}
\tkzDrawLine[very thick,red,add=.5 and .5](X,Y)
% 外側の接線を描画
\tkzDrawSegments[very thick,blue,add=.7 and .5](E,E' F,F')
% 点を描画
\tkzDrawPoints[size=3,color=red](I)
\tkzDrawPoints[size=3,color=blue](E,F,E',F')
%% ----- 確認用ラベル ----- %%
% \tkzDrawPoints[size=3,orange](O,O')
% \tkzLabelPoints(O,O')
% \tkzDrawPoints[size=3,orange](A,B)
% \tkzLabelPoint[left](A){A}
% \tkzLabelPoints[below](E,E')
% \tkzLabelPoints[above](F,F')
% \tkzLabelPoint[right](I){I}
\end{tikzpicture}
}
\end{document}

共通接線2本(2点で交わる)
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Bの円
\tkzDefPoint(4,0){O'}
\tkzDefPoint(6,0){B}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,A)(O',B)
\tkzGetPoint{J}
% Jから2つの円に接線を引いたときの接点E,F および E',F' を取得
\tkzDefLine[tangent from = J](O,A)
\tkzGetPoints{E}{F}
\tkzDefLine[tangent from = J](O',B)
\tkzGetPoints{E'}{F'}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',B)
% 外側の接線を描画
\tkzDrawSegments[very thick,blue,add=.9 and .5](E,E' F,F')
% 点を描画
\tkzDrawPoints[size=3,color=blue](E,F,E',F')
%% ----- 確認用ラベル ----- %%
% \tkzDrawPoints[size=3,orange](O,O')
% \tkzLabelPoints(O,O')
% \tkzDrawPoints[size=3,orange](A,B)
% \tkzLabelPoint[left](A){A}
% \tkzLabelPoint[left](B){B}
% \tkzLabelPoints[below](E,E')
% \tkzLabelPoints[above](F,F')
\end{tikzpicture}
}
\end{document}

共通接線1本(内接)
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Aの円
\tkzDefPoint(1,0){O'}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,A)(O',A)
\tkzGetPoint{J}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',A)
% 外側の接線を描画
\tkzDefRadicalAxis(O,J)(O',J)
\tkzGetPoints{X}{Y}
\tkzDrawSegment[very thick,blue,add=.4 and .4](X,Y)
\tkzDrawPoint[size=3,blue](J)
%% ----- 確認用ラベル ----- %%
% \tkzDrawPoints[size=3,orange](O,O')
% \tkzLabelPoints(O,O')
% \tkzDrawPoint[size=3,orange](A)
% \tkzLabelPoint[left](A){A}
% \tkzLabelPoint[right](J){J}
\end{tikzpicture}
}
\end{document}

共通接線なし(内部)
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=1]
%% ----- 点の定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% 中心O', 半径O'Bの円
\tkzDefPoint(.7,0){O'}
\tkzDefPoint(2.7,0){B}
%% ----- 図形の描画 ----- %%
% 円2つ
\tkzDrawCircle[very thick,black](O,A)
\tkzDrawCircle[very thick,black](O',B)
%% ----- 確認用ラベル ----- %%
% \tkzDrawPoints[size=3,orange](O,O',A,B)
% \tkzLabelPoints(O,O')
% \tkzLabelPoint[right](A){A}
% \tkzLabelPoint[left](B){B}
\end{tikzpicture}
}
\end{document}

円2個と共通接線1本
半径2の円Oと半径5の円O$’$が外接している。下の図のように, 直線が2点A, Bで2つの円と接しているとき,線分ABの長さを求めよ。
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=.4]
%% ----- 点を定義 ----- %%
% 中心O, 半径OXの円
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,0){X}
% 中心O', 半径O'Xの円
\tkzDefPoint(7,0){O'}
% 外側の接線の交点J
\tkzDefSimilitudeCenter[ext](O,X)(O',X)
\tkzGetPoint{J}
% Jから2つの円に接線を引いたときの接点
\tkzDefLine[tangent from=J](O,X)
\tkzGetPoints{A}{A'}
\tkzDefLine[tangent from=J](O',X)
\tkzGetPoints{B}{B'}
%% ----- 図形を描画 ----- %%
% 円2つ
\tkzDrawCircle[thick](O,X)
\tkzDrawCircle[thick](O',X)
% 直角記号
\tkzMarkRightAngle[size=.5,fill=red!10!white](O,A,B)
\tkzMarkRightAngle[size=.5,fill=red!10!white](O',B,A)
% 点
\tkzDrawPoints[size=3,fill=black](O,O')
% 線分
\tkzDrawSegments[thick](O,A O',B)%中心から接点へ
\tkzDrawSegment[very thick,add=0.4 and .8](A,B)
%% ----- ラベル ----- %%
\tkzLabelPoint[above,xshift=-2pt,yshift=1pt](A){A}
\tkzLabelPoint[above,xshift=-2pt](B){B}
\tkzLabelPoint[below](O){O}
\tkzLabelPoint[below,xshift=2pt](O'){O$'$}
\tkzLabelSegment[left,xshift=2pt,yshift=-4pt](O,A){2}
\tkzLabelSegment[right](O',B){5}
\end{tikzpicture}
}
\end{document}

半径3の円Oと半径2の円O$’$が外接している。下の図のように, 直線が2点A, Bで2つの円と接しているとき,線分ABの長さを求めよ。
\documentclass[dvipdfmx,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
\begin{document}
\scalebox{5}{
\begin{tikzpicture}[scale=.6]
%% ----- 点を定義 ----- %%
% 中心O, 半径OAの円
\tkzDefPoint(0,0){A}
\tkzDefPoint(0,3){O}
% 中心O', 半径O'Bの円
\tkzDefPoint(2*sqrt(6),0){B}
\tkzDefPoint(2*sqrt(6),2){O'}
% ABの右側に点C
\tkzDefShiftPoint[B](3,0){C}
%% ----- 図形を描画 ----- %%
\tkzDrawCircle[thick](O,A)
\tkzDrawCircle[thick](O',B)
\tkzDrawSegments[thick](O,A O',B)
\tkzDrawPoints[size=2,fill=black](O,O')
\tkzMarkRightAngle[size=.4,fill=red!10!white](O,A,B)
\tkzMarkRightAngle[size=.4,fill=red!10!white](O',B,C)
\tkzDrawSegment[very thick,add=.8 and .7](A,B)
%% ----- ラベル ----- %%
\tkzLabelPoint[above](O){O}
\tkzLabelPoint[above,xshift=2pt](O'){O$'$}
\tkzLabelPoint[below](A){A}
\tkzLabelPoint[below](B){B}
\tkzLabelSegment[left](O,A){3}
\tkzLabelSegment[left](O',B){2}
\end{tikzpicture}
}
\end{document}

今度こそ途中で挫折しないように、色々残しておこうと思います。病的に「最初からやりなおしたい病」なので。
ますどら更新情報です。直近6本の記事をリストアップしています。
この前に聞いていた「店長がバカすぎて」が好きすぎて同じ作者さんで探したら、なんとテレビドラマ「笑うマトリョーシカ」を書かれた方だと知ってビックリ。しかも「ロイヤルファミリー」も同じ方。これは聞くしかないと思ってオーディブルで聞いています。
リンク
ますどら
