スタートページJavascriptCANVAS物理等

光学 二面鏡の鏡像(2点の鏡像)


1点の鏡像については、二面鏡(1点の鏡像)を参照してください。
 1枚の鏡では実物と左右が逆の像になり、合わせ鏡では実物と同じ向きになることがあります。ここでは、赤点と青点とそれを結ぶ線の鏡像を表示します。

鏡像操作の原理

(説明)

赤点と青点が、まず上側太線の鏡Aを通るときの鏡像を表示しました。
右上は、赤点と青点が上側太線の鏡Aを通したときの鏡像です。実像の背後から鏡Aを見ると左右逆に見えます。
左下は、右上の鏡像が鏡Bに映った鏡像です。実像の背後から鏡Bを見ると斜めですが左右が同じに見えます。
どちらも赤点と青点の鏡像が見えるので、それをつないだ緑線の全体が見えます。

(説明)

左側の赤点が存在するのに青点が存在しないのは、青点の鏡像が水色円周の位置になるはずなのに、青点がすでに2つの鏡の裏側になっているので、その鏡像は見えないからです。
それで存在する赤点(円周水色)と存在しない青点(水色円周)を結んだ線のうち、仮想鏡との交点までの緑太線の部分)までは見えるが、細線の部分は見えないのです。
(緑太線が交点に達していないのは、プログラムの誤りです、鏡角度θが90°以上になると、かなりずれてしまいます。)

(説明)

赤点、青点がまず下側太線の鏡B通るときの鏡像等を加えるたものです。
今度は左上で、青点が見えるのに赤点が見えないケースが発生しました。

鏡の角度、赤点・青点の位置などを変更して実験してください。

鏡の角度(0<θ<180)=
赤点の座標:x= y=
青点の座標:x= y=

(詳細解説)

1点だけの場合は、二面鏡(1点の鏡像)を参照してください。
 ここでは、赤点と青点を結んだ「緑の太線」に限定します。

プログラムの流れ
  最初に鏡Aを通るコース
    P・Qの少なくとも一方が打切=0の間、「新鏡像処理」を行う
  最初に鏡Bを通るコース
    P・Qの少なくとも一方が打切=0の間、「新鏡像処理」を行う

「新鏡像処理」の内容
  Pに新鏡像があるらばその計算と図示する。
    このとき、新鏡像ができないなら、打切=2とする。
    新鏡像ができた場合、さらに新鏡像ができるかどうか判定し、できない場合は、打切=1とする。
  Qに新鏡像があるらばその計算と図示する。
    Pと同様の処理を行う。
  両方に新鏡像ができたならば、新Pと新Qの間全体が緑太線(見える)になる
  Qだけに新鏡像ができ、Pにはできないならば、
    Pに仮の新鏡像(水色の円周)P’を設定して、
    直線QP’と鏡(仮想鏡)との交点Sを求め、
    QSの部分を緑太線にする。