虹のできる原理を考えよう  〜光の屈折と反射、再現プログラム〜 (by YAMADA アイコン)

参考URL
・Y.AYA’s Garden 天空博物館  虹

   http://www.asahi-net.or.jp/~cg1y-aytk/ao/rainbow.html



Javaで水滴に入った光のシュミレーションをしてみました。


-用意するもの-
マウスやそれに類するもの・JavaのRuntime


-実験方法-

(インターネットエクスプローラーでの起動例)

下のプログラム欄に、白丸のある黒い画面が出るのを待つ。
(タブブラウザーでは実行できないこともあるみたいです。)

(実行例1)

マウスをてきとうに上下に動かすと、そこへ左からまっすぐ光が入ってくる。

(実行例2)
ふちに光を入れると、一回反射した光がある角度に出やすいことが分かる。


-プログラム-


-感想&補足-

 「なんか気象やりたいな〜。」との思いつきで行った今回の実験。
とりあえず完成したけど、いろいろ発展の可能性を感じました。(でも大変だからたぶん発展させない。)


水滴に入った光で、1回反射したものが集まる("微分方程式"という"積分"の一種で計算できる)と、主虹となります。
一方、2回反射すると副虹という1回り大きい虹を作ります。(薄いので分かりにくいかもしれません。)
3回反射した光も虹を作り得ますが、実際の空では確認できないと思います。(一応プログラムでは反映されています。)

色によって曲がり方(屈折率)や反射率が違うのは、一言で言うと"振動数"が違うからです。
簡単に言うと、光はもともと色ごとに違う震え方で空間を進んでいるのですが、
物質に入ることで(例えそれが透明でも)光の震え方に応じて影響を受け、それによって反射や屈折をするからです。

ところで、このプログラムを見ると通常の虹と逆である、すなわち赤が下(内)側になっている、と思うかもしれません。
このことについては、また機会があれば書こうと思いますが、ヒントは"人が見る虹の水滴はすべて違う"と云うことです。

 

戻る