SSブログ

近軸光線追跡 - その11 [近軸光線追跡]

昨日はMathematicaらしいやりかたでレトロフォーカス型のズームの基本的な動作を追ってみた。実際の場面で役に立つのはこういう機能だけど、やっぱり絵を描いていた方が面白い。ということでもう少し描いてみる。

7.4  他の例

やっぱり絵を描いていた方が面白いので、別の例をやってみる。

7.4.1  ビオゴン

このページにビオゴンタイプというのがある。ビオゴンてなんだか知らないけど、そのままコピペしてみる。
In[2]:= surfbiogon = {{76.50763, 6.000601, 1.649000, 126.0126/2},
   {83.20833, 6.060307, air, 126.0126/2},
   {82.83932, 5.868587, 1.651000, 120.012/2},
   {71.40716, 20.77338, air, 110.011/2},
   {250.025, 4.50045, 1.515000, 110.011/2},
   {61.30615, 75.30754, air, 94.00941/2},
   {72.2072, 44.58946, 1.716000, 64.00641/2},
   {28.20282, 11.06311, 1.717000, 34.0034/2},
   {-152.1752, 3.0003, air, 34.0034/2},
   {-83.20833, 4.0004 + 4.50045, 1.548000, 34.0034/2},
   {28.20282, 18.58386, 1.618300, 34.0034/2},
   {-23.50235, 24.79548, 1.713500, 34.0034/2},
   {-70.20705, 29.73198, air, 56.00561/2},
   {-36.13362, 13.82138, 1.464000, 60.00601/2},
   {-85.56377, 35.09807, air, 80.00801/2}};
In[3]:= biogon = 
 buildParaxialSystem[{1, 0}, surfbiogon, {1, 0}, 126/2]
Out[3]= "- paraxial System -"
In[4]:= focalLength[biogon, objectSpace]
Out[4]= 102.85
ページでは焦点距離が100mmになってるけど、ちょっとずれた。原因不明、が、よくある話。

ページの絵と比較するために2次元断面表示
In[5]:= drawParaxialSystem[biogon, sectionDrawing -> section2D, 
 PlotStyle -> {Directive[Black, Thick]}, Frame -> True, Axes -> None]
として描いたのが図-13。どうでもいいけどばかでかいレンズだなあ。昔はこんなだったんだ。

1006fig13.png
こんどはsectionPieオプション
In[6]:= drawParaxialSystem[biogon, sectionDrawing -> sectionPie, Mesh -> None,
  BoundaryStyle -> {Black}]

を試してみたのが図-14。
1006fig14.png

7.4.2  両側テレセン

もうひとつだけ例。ここの両側テレセン。
In[11]:= bothTelecensurf = {{-1343.524, 16.27131, 1.748100, 
    107.9562/2},
   {-173.5606, 52.20378, 1.0, 110.0659/2},
   {120.1365, 23.05102, 1.713000, 104.9041/2},
   {1122.042, 11.52551, 1.0, 99.69952/2},
   {61.01741, 31.18667, 1.670250, 81.54714/2},
   {-216.9508, 7.593277, 1.672700, 81.54714/2(*67.43355/2*)},
   {35.03755, 23.8917, 1.0, 46.72688/2},
   {0, 23.8917, 1.0, 36.57038/2},
   {-35.03755, 7.593277, 1.672700, 46.43981/2},
   {216.9508, 31.18667, 1.670250, 80.7747/2(*66.50834/2*)},
   {-61.01741, 11.52551, 1.0, 80.7747/2},
   {-1122.042, 23.05102, 1.713000, 98.19523/2},
   {-120.1365, 52.20378, 1.0, 103.4019/2},
   {173.5606, 16.27131, 1.748100, 106.4837/2},
   {1343.524 , 121.8992, 1.0, 104.2941/2}};
In[12]:= bothTelecen = 
 buildParaxialSystem[{1, 121.8992}, bothTelecensurf, {1, 121.8992}, 
  60]
Out[12]= "- paraxial System -"
In[13]:= lateralMagnification[bothTelecen]
Out[13]= -1.
とすると、ちゃんと等倍になっていた。

これを
In[13]:= drawParaxialSystem[bothTelecen, sectionDrawing -> section2D, 
 Axes -> False]
としたのが図-15。
1006fig15.png
In[14]:= drawParaxialSystem[bothTelecen, sectionDrawing -> sectionPie, 
 Mesh -> None, BoundaryStyle -> {Black}, ViewPoint -> Front]
とやって、見る方向を変えてみたのが図-16。
1006fig16.png
なんだかよくわからない。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

献立10/08献立10/09 ブログトップ

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