偏光の計算 - その12 [偏光のMathematicaによる計算]
前回、Mathematicaで偏光の表現の間で変換する関数を書いた。これはMathematicaらしい記述で、見慣れないと変な感じがするけど慣れればシンプルだし、代数的な記述に近くて読みやすい。
今日はMathematicaのグラフィクス機能を使ってポアンカレ球を描く関数。これはMathematicaらしいコードにはならないのでどう動作するかだけを書く。
ポアンカレ球の描画
ポアンカレ球をGraphics3Dのオブジェクトとして描画する関数としてpoincareSphere[opt___]を作った。 これを評価すると図-8のようになる。 この関数には
In[89]:= Options[poincareSphere] Out[89]= {hemisphere -> False, Opacity -> 1, Mesh -> Automatic, legendEllipses -> Automatic, legendEllipseSize -> Automatic, SphericalRegion -> True, stokesAxes -> False}などのオプションがある。
例えばOpacityを0、hemisphereはTrueにセットすると半球の枠だけを描く。
stokesAxesはs1、s2、s3方向に線をちょこっとだけ描画する。どっちを向いているかわからないときの目安になる。legendEllipsesは凡例の小さな楕円をどのピッチで描くかを指定する。legendEllipsesをNoneにセットすると描かなくなる。
また、Graphics3Dのオプションは描画されるオブジェクトにそのまま渡される。図-10ではViewPortを渡して3D描画のカメラ位置をかえている。
applyOpticsと同じ引数を受けるtraceOnPoincareSphereは素子ごとのポアンカレ球上での軌跡を描く。 例えばtraceOnPoincareSphere[ jonesVector[1, 0], {retarder[Pi/2*0.7, Pi/4], retarder[Pi/2, Pi/2]}]とすると、図-11のような線を引く。 図-12のようにポアンカレ球と同時表示するとわかりやすい。図では裏へ回ってしまっているが。 描画のためのコードは美しくないし、こまごまとうるさいだけなのでここでは紹介しない。明日、ソースをダウンロードできるようにするので、気になる人はそっちを見ていただきたい。
2009-03-03 23:28
nice!(0)
コメント(0)
トラックバック(0)
コメント 0