#include #include #include /* 定数の定義 */ #define N (50) #define K (100) #define PI (3.1415926) #define L (2*PI) #define T (10.0) main() { int i, k; float Y[N], dx; float dt; /* dx, dt を求める */ dx = L/(N - 1); dt = T/(K - 1); g_init("GRAPH", 200.0, 100.0); g_device(G_DISP); /* 仮想座標系の定義 */ g_def_scale(1, 0.0, L, -1.0, 1.0, 10.0, 10.0, 180.0, 80.0); g_sel_scale(1); for(k = 0; k < K; k++) { /* 外枠の描画 (グラフの消去してから描き直す) */ g_cls(); g_area_color(G_WHITE); g_line_color(G_BLACK); g_line_width(2); g_box(0.0, L, -1.0, 1.0, G_YES, G_YES); g_move(0.0, 0.0); g_plot(L, 0.0); /* 折れ線の種類*/ g_line_color(G_RED); g_line_type(G_LINE_SOLID); g_line_width(1); /* Y[i] を描く */ for(i = 0; i < N; i++) { /* Y[i] を求める */ Y[i] = sin(i*dx + k*dt); /* 描画開始点を与える */ if(i == 0) { g_move(i*dx, Y[i]); } /* 描画(線分をつなぐ) */ else if(i > 0) { g_plot(i*dx, Y[i]); } } g_sleep(0.05); } g_sleep(G_STOP); g_term(); }