#include using namespace wfl; void main() { Start(); WaveField a(256, 256, 2e-6); a.SetGaussian(0.1e-3, 50); a.SaveAsGrayBmp("Aperture.bmp", INTENSITY); //開口形状の保存 //===== 帯域制限角スペクトル法による伝搬計算(伝搬距離が長い場合) for (int i = 1; i <= 3; i++) { WaveField b = a; double d = 10e-3 * i; b.Embed(1); //サンプリング領域を4倍拡張 b.AsmProp(d); //伝搬する b.Extract(1); //サンプリング領域を4分の1に縮小 char fname[80]; sprintf(fname, "Diffraction-%d.bmp", (int)(d/1e-3)); b.Normalize(); b.SaveAsGrayBmp(fname, INTENSITY); } }