忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

温度と色

活発な熱い星は青く光り輝きますが、死にかけて温度が低くなっている星は赤いです。その様子を表示するプログラムを書きました。


プランクの法則

温度:

操作方法

温度:物体の温度を調節します。

解説

これは物体を加熱したときにどんな光が発せられるかを表示するプログラムです。温度バーを左端にすると赤に、右端に動かすと青になることがわかると思います。(この間のどこかに白っぽい色を出す温度もあるはずです)

左下のグラフは、物体が発する光の強さです。光の強さなら単に数字だけを表示すればいいのではと思うかもしれませんが、それは違います。わたしたちが見る光は、単色に見えてもじっさいは複数の光が混ざっているのがほとんどであり、たとえば製鉄所で熱した鉄の放つ黄色は、赤と緑の光が混ざっています。このグラフはその様々な色の光の強さを表しています。グラフが山のような形をしているのは、特に山の頂上あたりの色の光が一番強いからです。

青と緑と赤の縦線は、人の視覚を表しています。人間は、すべての光の強さを感じ取るわけではありません。この3つの縦線あたりの色の強さしかわからないのです(棒で表現しましたが、実際には下の図のように感じ取れる幅がすこしあります。このプログラムで描いたのは、山の頂上の位置です)。


人間の、3種類の色を感じとる視細胞の感受性(wikipediaより)

人間はこの3つだけを使って周りの世界を見ています。この3つの範囲から外れた光は人間には見えません。赤より右側の光は、赤外線とか電波とかいう名前で呼ばれており、青より左側の光は紫外線とかX線とか呼ばれていて、そもそも光だと意識されることさえ少ないのです。

このプログラムでは、熱された物体の出す光をこの3つの細胞の仮想バージョンで感じ取り、色を表示します。熱された物体の光が描く山は、温度を上げれば上げるほど頂上が左にずれていくので、赤から青へ色が変わっていくわけです。

※右の四角は、あくまでも何色かを表示しているにすぎないということに注意して下さい。光の強さの要素は無視しています。本当なら、温度を上げれば上げるほど、発せられる光は強くなるはずです。室温なら光は人間にはわからないほど弱いはずです。しかしそれをそのまま表示したのでは、ものすごく暗い黒だったりものすごく明るい白だったりするだけで、どんな色の光が出ているかわからないので、このシミュレーションではあえて色の要素だけを表示して、温度による色の変化がわかるようにしているのです。

拍手[0回]

PR