/** * 密度分布が描かれた画像ファイルを読み込み、設定します。 */ void loadDensityFile(string filePath){ // 画像ファイルからグラフィックスデータを生成 int graphics = newGraphics(filePath); // ピクセルの色成分を取得( [ Y ][ X ][ R/G/B ] ) int pixel[][][] = getGraphicsPixel(graphics); // グラフィックスデータを破棄 deleteGraphics(graphics); // 色配列の要素数を確認 int width = length(pixel, 1); int height = length(pixel, 0); if(width!=X_N || height!=Y_N){ alert("密度分布のX/Yサイズと、メッシュのX/Yサイズが一致していません。"); exit(); } // 面密度スケールを頂点質量のスケールに変換 float massScale = DENSITY_SCALE * X_LENGTH * Y_LENGTH / ( X_N * Y_N ); // グローバルの頂点質量配列 mass に値を設定 mass = getMassFromPixel(pixel, massScale); // 波モデルに色を塗る setModelColorFromPixel(waveModel, pixel); }