SSブログ

偏光の計算 - その12 [偏光のMathematicaによる計算]

前回、Mathematicaで偏光の表現の間で変換する関数を書いた。これはMathematicaらしい記述で、見慣れないと変な感じがするけど慣れればシンプルだし、代数的な記述に近くて読みやすい。

今日はMathematicaのグラフィクス機能を使ってポアンカレ球を描く関数。これはMathematicaらしいコードにはならないのでどう動作するかだけを書く。

ポアンカレ球の描画

ポアンカレ球をGraphics3Dのオブジェクトとして描画する関数として
 poincareSphere[opt___]
を作った。 これを評価すると図-8のようになる。
0303fig8.png
この関数には
 In[89]:= Options[poincareSphere]
 Out[89]= {hemisphere -> False, Opacity -> 1, Mesh -> Automatic, 
          legendEllipses -> Automatic, legendEllipseSize -> Automatic, 
          SphericalRegion -> True, stokesAxes -> False}
などのオプションがある。

例えばOpacityを0、hemisphereはTrueにセットすると半球の枠だけを描く。

0303fig9.png
stokesAxesはs1、s2、s3方向に線をちょこっとだけ描画する。どっちを向いているかわからないときの目安になる。

legendEllipsesは凡例の小さな楕円をどのピッチで描くかを指定する。legendEllipsesをNoneにセットすると描かなくなる。

また、Graphics3Dのオプションは描画されるオブジェクトにそのまま渡される。図-10ではViewPortを渡して3D描画のカメラ位置をかえている。

0303fig10.png
applyOpticsと同じ引数を受けるtraceOnPoincareSphereは素子ごとのポアンカレ球上での軌跡を描く。 例えば
 traceOnPoincareSphere[
     jonesVector[1, 0], {retarder[Pi/2*0.7, Pi/4], retarder[Pi/2, Pi/2]}]
とすると、図-11のような線を引く。
0303fig11.png
図-12のようにポアンカレ球と同時表示するとわかりやすい。図では裏へ回ってしまっているが。
0303fig12.png
描画のためのコードは美しくないし、こまごまとうるさいだけなのでここでは紹介しない。明日、ソースをダウンロードできるようにするので、気になる人はそっちを見ていただきたい。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立03/03献立03/04 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。