近軸光線追跡 - その11 [近軸光線追跡]
昨日はMathematicaらしいやりかたでレトロフォーカス型のズームの基本的な動作を追ってみた。実際の場面で役に立つのはこういう機能だけど、やっぱり絵を描いていた方が面白い。ということでもう少し描いてみる。
ページの絵と比較するために2次元断面表示
こんどはsectionPieオプション
これを
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。どうでもいいけどばかでかいレンズだなあ。昔はこんなだったんだ。
こんどはsectionPieオプション
In[6]:= drawParaxialSystem[biogon, sectionDrawing -> sectionPie, Mesh -> None, BoundaryStyle -> {Black}]を試してみたのが図-14。
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。
In[14]:= drawParaxialSystem[bothTelecen, sectionDrawing -> sectionPie, Mesh -> None, BoundaryStyle -> {Black}, ViewPoint -> Front]とやって、見る方向を変えてみたのが図-16。 なんだかよくわからない。
2010-10-08 21:50
nice!(0)
コメント(0)
トラックバック(0)
コメント 0