2つの円の接線の求め方

概要

本ページはHTML5でSVGを使用しています。閲覧には、対応したブラウザを使用してください。
JavaScriptで図を動かしていますので、JavaScriptが動作するようにしてください。

二つの円の接線の求め方

2つの円の接線を作図する方法を以下に示します。

二つの円と距離を定義

2つの円の半径をR、R'中心間の距離をLと定義します。
R O r O' L SVGの代替画像

接線との平行線を作図

半径Rの円と同心円の半径R-rの円を作図します。
二つの円の中心を直径(O-O')とする円を作図します。
上記の円の中心をO"とします。
半径R-rの円と直径(O-O')の円との交点をAとします。
直線A-O'が接線と並行となります。
水平線と直線O-Aの挟む角をθとしこれを求めます。
三角形O-O"-Aは、L/2と(R-r)で構成される2等辺三角形なのでθは以下の様に求められます。
\theta = \sin^{-1} \frac{R-r}{L}
R O r O' L r O" A SVGの代替画像

接線を作図

直線O-Aの延長線とBとの交点をBとします。
B-O'を直径とする円を作図します。
半径rの円とB-O'を直径とする円の交点をCとします。
B-Cが接線となります。
R O r O' L r A B C SVGの代替画像 R O r O' L B C θ θ SVGの代替画像

接線の始点終点座標

上記の検討より接線の始点終点であるB点とC点の座標を以下の式で求められる。
半径Rの円の中心O点に対してB点の相対座標は以下のとおりである。
B_x =R \sin \theta
B_y =R \cos \theta
半径rの円の中心O'点に対してC点の相対座標は以下のとおりである。
C_x =r \sin \theta
C_y =r \cos \theta

接線算出の検証

上記の式が正しいことを検証するために、各円の大きさ及び距離を変化させて接線を描画してみる。
デモボタンをクリックすると各円の大きさや距離が変わります。
SVGの代替画像