#include using namespace wfl; void main() { Start(); WaveField u0(2048, 2048, 0.5e-6); //サンプリング数2K2K,間隔0.5μmのフィールド u0.SetGaussian(0.25e-3, 50); //開口の生成 u0.ExactAsmProp(6e-3); //6mmの並進伝搬計算 u0.SaveAsWf("Parallel.wf"); //伝搬元フィールドの保存 RMatrix mat = CRMatrixY(45*DEG); //y軸周りに45度座標回転する変換行列 WaveField u1(2048, 2048, 0.5e-6); //伝搬先フィールド SFrequency cal; //キャリア周波数を入れる変数 u1.Rotate(u0, mat, &cal); //回転変換の実行(キャリア周波数がcalに入る) u1.MultiplyPlaneWave(cal); //得られたキャリア周波数の平面波を乗算する u1.SaveAsWf("Rotation-c.wf"); //伝搬先フィールドの保存 }