/* * testdensity.c --- g_density_plot_color() のテスト * GLSCWIN が必要です。 * 桂田研パソコンならば glscd testdensity.c でコンパイル可能 */ #include #include #define G_DOUBLE #include #define N (100) double pi; double f(double x, double y) { return sin(pi * x) * sin(pi * y); } int main() { double xmin, xmax, ymin, ymax, w_margin, h_margin, w_width, w_height; G_REAL u[N+1][N+1]; int i, j, n, nx, ny; double x, y, dx, dy; nx = ny = N; pi = 4 * atan(1.0); /* 矩形領域を定める */ xmin = -1.0; xmax = 1.0; ymin = -1.0; ymax = 1.0; /* ウィンドウのサイズ */ w_margin = 1.0; h_margin = 1.0; w_width = 100.0; w_height = 100.0; /* GLSC の開始 */ g_init("DENSITY", w_width + 2 * w_margin, w_height + 2 * h_margin); g_device(G_BOTH); /* 座標系を決める */ g_def_scale(0, xmin, xmax, ymin, ymax, w_margin, h_margin, w_width, w_height); g_sel_scale(0); /* 格子点上での関数値の計算 */ dx = (xmax - xmin) / nx; dy = (ymax - ymin) / ny; for (i = 0; i <= nx; i++) { x = xmin + i * dx; for (j = 0; j <= ny; j++) { y = ymin + j * dy; u[i][j] = f(x,y); } } /* */ g_density_plot_color((G_REAL *)u, nx + 1, ny + 1, 0, nx, 1, 0, ny, 1, G_NO, G_NO, xmin, xmax, ymin, ymax, -1.0, 1.0); g_sleep(-1.0); g_term(); return 0; // もしマウス・クリックだけで終了したいのならば exit(0); とする。 }