#include using namespace wfl; void main(void) { Start(); WaveField f(512, 512, 10e-6); // 512x512の2次元分布 int i, j; double z = 100e-3; //原点から100mmの距離に点光源がある // 球面波をfに設定 for (j = 0; j < f.GetNy(); j++) for (i = 0; i < f.GetNx(); i++) { double x = f.X(i), y = f.Y(j); double r = sqrt(x*x + y*y + z*z); f.SetPixel(i, j, polar(1/r, f.GetWavenumber()*r)); } f.Normalize(); //この例ではあまり意味はない f.SaveAsGrayBmp("SphericalWave-amp.bmp", AMPLITUDE); f.SaveAsGrayBmp("SphericalWave-phs.bmp", PHASE); }