2次曲線の焦点と光の反射

放物線、楕円、双曲線には焦点があります。ある方向から光がこれらの曲線に当たると、反射をして1点に集まります。それが焦点です。放物線の焦点は、パラボラアンテナで身近に見ることができます。焦点のところに受信機があります。楕円には焦点が2つあり、一方の焦点から出た光がもう一方の焦点に集まるという面白い性質があります。

曲面(曲線)での光の反射は、入射角と反射角が等しいという性質によって反射するのですが、接線や法線の図を計算して描こうとすると結構面倒です。しかし、Cinderellaの作図ツールを使えば簡単にできてしまいます。

放物面(線)での光の反射

Cinderellaの描画ツールを用いて放物線を描きます。この描画ツールでは、準線と焦点から放物線を描きます。

直線を加えるツールで、直線 y=−1 を引きます。準線です。

点を加えるツールで (0,1) に点をとります。焦点です。

「焦点と通る点で決まる楕円」ツールをクリックし、直線AB、点Cを順にクリックすると、放物線が描かれます。

点を加えるツールで、放物線上に点を取ります。ここに上から来た光が当たります。

点Dにおける接線を引きますが、Cinderellaの作図ツールでは「極線」を使います。

点Dを選択し、「点の極線を加える」ツール を選びます。ツールボタンがない場合は、「設定」ー「上のツールバーのカスタマイズ」で「すべて表示」にしてすべてのツールボタンを出しましょう。あるいは、メニューの「モード」ー「直線」ー「点の極線」と進んでも結構です。

「点に関する極直線を描くために、2次曲線を選択してください」というガイドに従って、放物線をクリックすると接線が引かれます。

次に法線です。垂線を描くツールを選び、直線上の適当なところから点Dにドラッグして法線を描きます。

次に光線を描きます。軸に平行で点Dを通る直線です。y軸をあらためて引かなくても、準線が利用できます。垂線を描くツールで、準線に垂直で点Dを通る直線を引きます。

最後に、反射した光線です。

鏡映「対称」ツールを選び、ガイドに従って、「鏡になるもの」として法線を、「映すもの」として今描いた直線を選びます。

これで図はできましたが、法線はすべて引くより、点Dからの半直線にしたほうがよさそうです。そこで法線上に点を一つ取っておきます。白い枠の描画範囲の外にとるとよいでしょう。次図のHです。

さらに、書き出す直線の指定のために、接線、光線、反射した光線上に点をとっておきます。次図のK,L,Mです。

これで必要なものは揃いました。CindyScriptで、出力するスクリプトを書きます。

Plotdata("1","1/4*x^2","x");

Lineplot([D,K]);

Listplot([L,D]);

Listplot([H,D]);

Listplot([M,D]);

Letter([C,"nw","F",D,"es","A"]);

1行目で放物線を描きます。

2行目は接線です。直線全体なので Lineplot です。

3〜5行目は、点Dを端点とする半直線です。Listplot では線分なのですが、1方の点は出力される領域外にあります。

6行目で焦点のF,放物線上の点Aの名前を付けます。

次ができ上がり図です。

楕円での光の反射

まず楕円を描きます。長軸半径4,短軸半径3で横長の楕円としましょう。

x軸上に焦点を2つとります。正確な位置はあとでCindyScriptで指定するので、今は適当でよいです。

もうひとつ、通る点をとります。これは、y軸上の (0,3) です。

「焦点と通る点で決まる楕円」ツールをクリックし、ガイドに従って2つの焦点とy軸上の点をクリックしますと楕円が描かれます。

できた楕円上に、点をひとつ取っておきます。

2つの焦点の位置を指定するスクリプトをDrawスロットに書きます。

A.x=-sqrt(7);

B.x=sqrt(7);

実行すると、AとBは次図の位置になります。

次に、放物線のときと同じ要領で点Dにおける接線と法線を引きます。

光線は、2つの焦点と点Dを結んだ線分を引きます。直線でも構いません。結果はわかっているので、鏡映「対称」ツールは使わなくてよいでしょう。

さらに、書き出しのために、接線上と法線上に点をとっておきます。次図のF,Eです。

書き出しのためのスクリプトを追加します。

Paramplot("1","[4*cos(t),3*sin(t)]","t=[0,2*pi]");

Lineplot([D,F]);

Listplot([D,E]);

Listplot([A,D]);

Listplot([B,D]);

Letter([A,"s","F1",B,"s","F2",D,"ne","A",[4,0],"s","4",[-4,0],"s","-4",[0,3],"w","3",[0,-3],"w","-3",[1.5,-3],"s","$\frac{x^2}{16} + \frac{y^2}{9} =1 $"]);

最後の行が長いですが、軸上の数字と方程式を書きました。

先ほどのスクリプトと合わせて、次のようになります。

実行した図です。

TeXファイルでは次のようになります。

双曲線での光の反射

同じ要領で、双曲線でもやってみましょう。次の図とスクリプトで作図してみてください。

A.x=5;

B.x=-5;

Plotdata("1","4/3*sqrt(-9+x^2)","x=[3, 10]",["Num=200"]);

Plotdata("2","-4/3*sqrt(-9+x^2)","x=[3, 10]",["Num=200"]);

Plotdata("3","4/3*sqrt(-9+x^2)","x=[-10, -3]",["Num=200"]);

Plotdata("4","-4/3*sqrt(-9+x^2)","x=[-10, -3]",["Num=200"]);

Lineplot([P,Q]);

Listplot([G,P]);

Listplot([G,P]);

Lineplot([P,H]);

Letter([G,"n2e2","F",H,"nw","F$`$",P,"nw","A"]);

< 戻る >