Aπραξία

結像光学系

ベクトル形式で反射の法則・スネルの法則を表記する(1)

2025.12.4

ベクトル形式で反射の法則・スネルの法則を表記する(1)

光線追跡ソフトウェアを用いて反射の法則やスネルの法則を元に反射(屈折)光線の方向を計算する際に、ちょっとした"不都合"に遭遇したことはないだろうか。例えばスキュー光線を取り扱う場合は様々なプロセスを光線ごとに実行する必要があり、結構な手間になる。今回はその手間から逃れるための手段である、各法則のベクトル形式での記述方法を紹介しよう。

CodeVやZEMAXといった光線追跡ソフトウェアの主たる機能は、光学表面に到達した光線がその後どの方向に導かれるかを精密に計算することにある。したがって、反射の法則(\(\theta_{in}=\theta_{R}\):\(\theta_{in}\)と\(\theta_{R}\)はそれぞれ入射角と反射角)とスネルの法則(\(n_{1}\sin⁡{\theta_{in}}=n_{2}\sin{\theta_{T}}\):\(\theta_{T}\)は透過光の屈折角、\(n_{1}\)と\(n_{2}\)はそれぞれ入射側と透過側の屈折率)を計算するルーチンはソフトウェアの根幹であるといえる。しかしながら、実際に反射の法則とスネルの法則を用いて反射(または屈折)光線の方向を計算しようとするといろいろ不都合があることが見えてくる。入射角\(\theta_{in}\)、反射角\(\theta_{R}\)、屈折角\(\theta_{T}\)は、反射面(=入射光線と反射光線を含む面)もしくは屈折面(=入射面と屈折面を含む面)内で定義されている。例えば、メリディオナル面やサジタル面内にない光線(=スキュー光線)を取り扱う場合は、まず反射面や屈折面を定義し、その面内で反射の法則とスネルの法則を適用し、射出光線の方向を求め、そして、最終的には光学系で定義された座標系に戻す、というプロセスを光線毎に実行する必要があり、とても面倒である。ところが、光線がベクトルとして表現されることに注目すると、もし反射の法則とスネルの法則をベクトル表現できれば、いちいち座標変換をする必要もなく、ベクトルの成分のみの計算済みこうした煩雑さからは開放される。そこで今回の記事では、反射の法則とスネルの法則のベクトル形式について紹介したい。以下、ベクトルの演算に慣れてない読者には少し難しいかもしれないが、図も参考にしながら丁寧に読めば最後まで到達できるように書いてあるので、ぜひチャレンジして欲しい。今回はその前半戦である、反射の法則のベクトル表記を見てみよう。

 

反射の法則のベクトル形式化:
準備として入射光線ベクトル\(\vec{s}\)を定義する。これは光線の進行方向に沿った大きさ1のベクトルである。光線の波数ベクトル\(\vec{k}\)とは以下の関係がある。

$$\vec{s} = \frac{\vec{k}}{|\vec{k}|}$$

屈折率\(n_1\)と\(n_2\)の媒質で隔たれた界面に対して光線は入射するとし、界面の法線を\(\vec{n}\)とする。ただし\(\vec{n}\)の正の方向は媒質1から媒質2に向かう方向とする。

入射光線ベクトルの界面に対して平行な成分と垂直な成分をそれぞれ\(\vec{s}_\parallel\)と\(\vec{s}_\perp\)とすると、幾何学的関係から\(\vec{s}_\parallel\)と\(\vec{s}_\perp\)はそれぞれ以下のようになる(図1を参照)。

$$\vec{s}_\parallel = \vec{s} – (\vec{s} \cdot \vec{n})\vec{n}$$

$$\vec{s}_\perp = (\vec{s} \cdot \vec{n})\vec{n}$$

 

図1:屈折率\(n_1\)と\(n_2\)の媒質で隔たれた界面での入射および反射の模式図

 

さらに、反射光線ベクトル\(\vec{s}’\)を定義し、反射光線ベクトルに対しても界面に平行な成分\(\vec{s}’_\parallel\)と垂直な成分\(\vec{s}’_\perp\)を定義する。ここで反射の法則の要請である”入射角と反射角が同じ”という条件を用いると、①\(\vec{s}’_\parallel\)は\(\vec{s}_\parallel\)と同じ、②\(\vec{s}’_\perp\)は\(\vec{s}_\perp\)の符号を反転したものということが分かるので(図1)、

$$\vec{s}’_\parallel = \vec{s}_\parallel$$

$$\vec{s}’_\perp = -\vec{s}_\perp$$

となり、結局

$$\vec{s}’ = \vec{s}’_\parallel + \vec{s}’_\perp = \vec{s}_\parallel – \vec{s}_\perp = \vec{s} – 2(\vec{s} \cdot \vec{n})\vec{n}$$

が得られる。これが反射の法則のベクトル形式であり、入射光線ベクトルと面の法線ベクトルを与えれば反射光線ベクトルを得ることができる。

 

次回はスネルの法則のベクトル表記を解説する。

この記事の監修者プロフィール

池田優二

大学院在学中に自らが計画して手掛けた偏光分光装置の開発がきっかけで光学に魅了される。 卒業後民間光学会社に就職し、2006年にフォトコーディングを独立開業。 官民問わずに高品質の光学サービスを提供し続ける傍ら、2009年より京都産業大学にも籍を置き、 天文学と光学技術を次世代に担う学生に日々教えている。 光学技術者がぶつかるであろう疑問に対するアンサー記事を主に担当。

  • お電話でのお問い合わせ

    075-748-1491

    お急ぎの方はお電話にてご連絡ください。
    受付時間:平日10:00〜18:00

  • メールでのお問い合わせ

    MAIL FORM

    フォームよりお問い合わせください。

TOP