RAYTRACEX

OpticStudio の光線追跡ルーチンを呼び出し、現在の光学系で任意の開始面からの特定の光線を追跡します。

構文 :

RAYTRACEX x, y, z, l, m, n, surf, wavelength
 

説明 :

式 x、y、z、l、m、n は、開始面のローカル座標での入力光線の位置と方向余弦を定義します。面の式は、0 から面の数より 1 小さい数までの範囲の整数に評価される必要があります。wavelength 式はオプションで、デフォルトでは主波長に設定されます。指定する場合には、1 から定義された波長の最大数までの範囲の整数に評価される必要があります。

物体の厚みが無限大で、surf パラメータがゼロの場合、入力座標は物体面ではなく第一面を基準にすると想定されます。ただし、光線は物空間媒質で定義されます。それ以外の場合、OpticStudio は指定された座標をそのまま使用します。

光線の追跡後、ZPL 関数の RAYX、RAYY、RAYZ、RAYL、RAYM、RAYN を使用して (グローバル座標で結果を得るには、RAGX、RAGY、RAGZ、RAGL、RAGM、RAGN を使用)、光線交差座標と方向余弦を決定できます。有効になるのは「surf」の面より後の面のデータのみです。

光線追跡中にエラーが発生した場合は、関数 RAYE (RAY Error を意味する) がゼロ以外の値を返します。RAYE が負の数値の場合は、戻り値の絶対値の面番号の面で全反射が発生したことを示します。RAYE がゼロより大きい場合、その光線では面番号が返されていません。

RAYE の確認はオプションですが、RAYE がゼロでない場合、RAYX、RAYY などの関数は無効なデータを返す可能性があります。関数 RANX、RANY、RANZ は交差面の法線の方向余弦を返し、RAYT は光線の面までの光路長を返します。関数 RAYV は光線がビネッティングされた面番号を返すか、光線がビネッティングされていない場合はゼロを返します。ビネッティング面を過ぎた面について返される値は、正確でない可能性があります。

例 :

n = NSUR()
RAYTRACEX 0,1,0,0,0,1,0,NWAV()
y = RAYY(n)
PRINT "The ray intercept is ", y
 

関連キーワード :

RAYTRACE

次へ :