coding Shift_JIS; // ライブラリの読み込み import tool.Graph3D; // 3次元グラフを扱うのに必要 import Math; // 数学関数を扱うのに必要 // グラフにプロットする内容を格納する座標値配列を用意 int pointN = 16; // 座標点数 float xData[pointN][pointN]; // 各点のX座標を格納する配列 float yData[pointN][pointN]; // 各点のY座標を格納する配列 float zData[pointN][pointN]; // 各点のZ座標を格納する配列 // グラフのプロット範囲 float xMax = 2.0; // X範囲の最大値(右端) float xMin = -2.0; // X範囲の最小値(左端) float yMax = 2.0; // Y範囲の最大値(上端) float yMin = -2.0; // Y範囲の最小値(下端) float zMax = 1.0; // Z範囲の最大値(上端) float zMin = -1.0; // Z範囲の最小値(下端) // 3次元グラフを起動し、プロット範囲などの設定を済ませる int graph = newGraph3D(); // グラフを起動 setGraph3DRangeX(graph, xMin, xMax); // X範囲を設定 setGraph3DRangeY(graph, yMin, yMax); // Y範囲を設定 setGraph3DRangeZ(graph, zMin, zMax); // Z範囲を設定 setGraph3DAutoRange(graph, false, false, false); // 範囲の自動調整を無効化 setGraph3DOption(graph, "WITH_POINTS", false); // 点プロットを無効化 setGraph3DOption(graph, "WITH_MESHES", true); // メッシュプロットを有効化 setGraph3DOption(graph, "WITH_MEMBRANES", true); // 曲面プロットを有効化 // アニメーションループ(変数 frame に回数をカウントしていく) for (int frame=0; true; frame++) { // 回数に上限を設けるには true を frame<=1000 などに変更 // この時点のループ回数から、この時点の時刻の値 t を求める float t = 0.05 * frame; // 係数が大きいほど時刻が早く進む=アニメーションが速くなる // 座標値配列の内容を更新 for(int yi=0; yi