Cinderellaで数学:いろいろな曲線:コンコイド
コンコイドの定義
点Oと曲線Cが与えられている。曲線C上を点Aが動くとき,直線OA上の点Aから一定の距離にある2点P,Qの軌跡を曲線Cに関するコンコイドという。
直線に関するコンコイド
上の定義で、Cが直線の場合。Aが動くときのP,Qの軌跡が直線に関するコンコイドです。

コンコイドを作図するために,ニコメデス、デカルト、スアルディなどが作図器を作りました。その説明が筑波大学の「CRICED」のページにあります。
今なら,コンピュータを使って図を描くことができます。Cinderellaには軌跡を表示するツールがありますので簡単に作図できます。やってみましょう。
まず,点と直線,および直線上の点を作図します。磁石ツールで座標軸と方眼を表示し,スナップモードにしておくと取りやすいかもしれませんが必須ではありません。

次に,Dを中心として円を描き,直線ADを引いて,交点を作図します。

軌跡ツールを選び,動かす点としてDを選びます。Dは始めに描いた直線上にあると認識されていますので,次に軌跡を描く点としてEを選びますと,軌跡が描かれます。

点Dをドラッグしてみると,確かに2つの点が赤い曲線状を動くことがわかります。円周をドラッグして円の大きさを変えますと軌跡が変化します。

軌跡を描くのに,Cinderella の軌跡ツールを使いましたが,Pythonなのでプログラムするには,方程式が必要ですね。「曲線の事典」には極方程式と,直交座標の4次方程式が載っていますが,媒介変数でも表示できます。たとえば,次のように設定します。

パラメータは直線とOAのなす角とします。Aを動かすと角tが変化します。このとき,Aの座標を$${(s , 0)}$$ とすると,Qの座標は
$${(h \tan t - r \cos(\frac{\pi}{2}-t),r \sin(\frac{\pi}{2} -t))=(h \tan t - r \sin t,r \cos t))}$$
となります。Pの座標も同様に求められます。したがって,軌跡の媒介変数表示は,
$${x=h \tan t - r \sin t,y=r \cos t}$$ と $${x=h \tan t + r \sin t,y=-r \cos t}$$
になります。
スクリプトは次のようにすればいいでしょう。
h = A.y;
r = C0.radius;
fxp(t):=htan(t) - rsin(t);
fyp(t):=rcos(t);
fxq(t):=htan(t) + rsin(t);
fyq(t):=-rcos(t);
plot([fxp(t),fyp(t)], start -> -pi/2, stop -> pi/2, color -> [1,0,0]);
plot([fxq(t),fyq(t)], start -> -pi/2, stop -> pi/2, color -> [1,0,0]);
円に関するコンコイド
上の定義で、Cが円の場合です。曲線の事典(礒田正美他 共立出版)には次のように説明があり,スアルディの作図器の写真が掲載されています。
平面上に固定された点Oと,中心C,半径rの円$${\gamma}$$が与えられている。円$${\gamma}$$上の点Aと点Oを結んだ直線sがある。直線s上に2点P,Qを点Aに関して点対称となるようにとる。点Aが円$${\gamma}$$上を動くとき、点P,Qは点Oを極,距離AP=QA=a のコンコイドをかく、この曲線は線分OCとr,aとの大小関係よって形が決まる。点Oが円$${\gamma}$$上にあるとき,点P,Qはパスカルのリマソンをかく。

Web上の写真は次のところにあります。同じものですがカラーです。
ただし,本の図と写真は上下(左右)が逆になっています。また,作図器ではもうひとつ外側(写真では右側)に軌跡が描かれています。
ひとまず,解説図にしたがってCinderellaで作図しましょう。次のように作図します。(点の名称は作図順なのでコンコイドの定義とは異なります)

軌跡ツールを選んで,動かす点としてCを選びます。動かす道はすでに指定されているので,軌跡を描く点としてDを選ぶと軌跡が描かれます。画面上を一度クリックすると,また動かす点を聞いてくるので同じようにして,今度は外側のEの軌跡を描きます。

動かすモードに戻して点Cをドラッグしてみれば,DとEが軌跡上を動くのがわかります。2つの円の円周をドラッグして大きさを変えればいろいろな軌跡が見られます。

点O(作図上はA)が円C上にあるときが、パスカルのリマソンです。

円に関するコンコイドでも,媒介変数表示の方程式を求めてみましょう。
次のように補助線を引き,各点と角に名前を付けます。

P の$${x}$$座標は BK - PH で表されます。
定円の半径を $${R}$$,動円の半径を $${r}$$ とすると,BK = $${R \cos \theta}$$ ,PH = $${r \cos \alpha}$$です。
ここで,△AKC と △PHC は相似なので $${\cos \alpha=\dfrac{\rm{AK}}{\rm{AC}}}$$ です。
三平方の定理を使うと,ABの長さを$${c}$$ として
$${\rm{AC}^2=\rm{AK}^2+\rm{CK}^2}$$
$${=(R \cos \theta +c)^2+(R \sin \theta)^2}$$
展開して整理すると
$${\rm{AC}^2=R^2+2cR\cos \theta+c^2}$$
かくして,$${x=R\cos \theta-r\dfrac{R \cos \theta+c}{\sqrt{R^2+2cR\cos\theta+c^2}}}$$ となります。
y座標も同様にして $${y=R \sin \theta\left(1-\dfrac{r}{\sqrt{R^2+2cR\cos \theta+c^2}}\right)}$$ となります。
スクリプトと実行結果です。
fpx(t):=Rcos(t)-r(Rcos(t)+c)/sqrt(R^2+2cRcos(t)+c^2);
fpy(t):=Rsin(t)(1-r/sqrt(R^2+2cRcos(t)+c^2));
fqx(t):=Rcos(t)+r*(Rcos(t)+c)/sqrt(R^2+2cRcos(t)+c^2);
fqy(t):=Rsin(t)(1+r/sqrt(R^2+2cRcos(t)+c^2));
R = C0.radius;
r = C1.radius;
c = |A.x|;
plot([fpx(t), fpy(t)], stop -> 2pi, steps -> 500, color -> [1,0,0]);
plot([fqx(t), fqy(t)], stop -> 2*pi, steps -> 500, color -> [1,0,0]);
なお,曲線の事典の解説では,媒介変数表示ではなく,極座標を用いた式が示されています。
スアルディの作図器と解説図は上下が逆でしたが,作図器に模して作ったものをWeb上に載せました。
