2009-06-21[n年前へ]
■Mathematicaライブラリをさらに「オブジェクト指向風」にしてみました
以前、分光スペクトル・色処理用のMathematicaライブラリ(関数群)を作りました。そして、この前Mathematicaで「オブジェクト指向風」記述をすることで、括弧の対応や処理手順を見やすく・わかりやすくしてみました。もちろん、「わかりやすい」というのはあくまで主観的な話です。
今日は、もう少し本格的な例を作ってみようと考えて、そのMathematicaライブラリに、Spectorクラス・Layerクラス・Lightクラスを作成・追加してみたのです。物体を光で照らした時に見える分光スペクトルを、モンテカルロ的に解く機能を適当に付けてみました。
そんなわけで、スペクトルを扱うSpectorクラス、立体形状を扱うLayerクラス、そして、適当に光追跡を行う機能を盛り込んだLightクラスを仕立ててみたのです。
たとえば、デフォルト設定をそのまま使うなら、
layers=Layer[new] aLight=Light[new] aLight[in,layer][showTrace]といったコードを書くと、三次元物体中を照らす光の色が、どのように変わっていったかを立体的に表示させることができます。
あるいは、
Spector[new][set,blueSpector][spectorPlot]と書けば、青い色のスペクトル分布を描いてくれます。Layersは・・・形状を定義する関数を少しオブラートに包んだクラスです。
そんなわけで、数日後には、バグ確認・使い方の例などを加えた上で、サイトからダウンロードできるようにします。また、適当に仕立てたこのツールを使い、何か解析でもしてみようと思います。