【raytracing】同じ点から異なる角度で射出される複数の平行光を作る方法[Python]

  • URLをコピーしました!
目次

raytracing

前回、物体や像を示す矢印、ラベルを非表示にする方法を紹介しました。

今回は同じ点から異なる角度で射出される複数の平行光を作る方法を紹介します。

それでは始めていきましょう。

異なる角度で射出される複数の平行光を作る方法

まず単純に距離を50として物体からの光線を表示してみます。

from raytracing import *

path = ImagingPath()
path.append(Space(d=50))
path.display()

実行結果

緑、赤、青の光線はそれぞれ違う点から放出され、ある角度をもって発散しています。

緑、赤、青で上、中、下の光線はそれぞれ並行だとは言えるので、ObjectRaysを使って物体のサイズ、発散角を調整すると平行光を作ることができます。

from raytracing import *

path = ImagingPath()
path.append(Space(d=50))
path.display(ObjectRays(diameter=1, halfAngle=np.radians(10)))

実行結果

ただこの方法ではこの後の光路でそれぞれの光線が混ざってくると、どの角度の光線がどこにきているのか分かりにくいです。

そのため今回はそれぞれの角度で異なる色となる様に光線を調整してみます。

作り方は簡単で光源からある一定の距離に、その距離と同じ焦点をもつレンズを配置するだけです。

つまり距離10のところに焦点距離10のレンズを配置するといった感じです。

from raytracing import *

path = ImagingPath()
path.append(Space(d=10))
path.append(Lens(f=10))
path.append(Space(d=100))
path.display(ObjectRays(diameter=1, halfAngle=np.radians(10)))

実行結果

これで平行光の原型ができました。

平行光の太さ、角度を変える方法

平行光の太さを変えるにはObjectRaysの「halfAngle」を変えます。

太くしたい場合は角度を大きくし、小さくしたい場合は角度を小さくします。

例えば角度を小さくするとこんな感じになります。

from raytracing import *

path = ImagingPath()
path.append(Space(d=10))
path.append(Lens(f=10))
path.append(Space(d=100))
path.display(ObjectRays(diameter=1, halfAngle=np.radians(1)))

実行結果

次に角度を変える場合はレンズの距離と焦点距離を短くします。

from raytracing import *

path = ImagingPath()
path.append(Space(d=1))
path.append(Lens(f=1))
path.append(Space(d=100))
path.display(ObjectRays(diameter=1, halfAngle=np.radians(10)))

実行結果

もしくはObjectRaysのdiameterを大きくします。

from raytracing import *

path = ImagingPath()
path.append(Space(d=10))
path.append(Lens(f=10))
path.append(Space(d=100))
path.display(ObjectRays(diameter=10, halfAngle=np.radians(10)))

実行結果

色々パラメータを変えることで色々な平行光が作れますので、良かったら試してみてください。

次回はraytracingライブラリで光線の高さや位置、角度を取得する方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次