課題2 波揺れる水面をシミュレートし可視化するプログラムを作成せよ。

プログラム作成環境  Microsoft Visual Studio .NET 2003 + Qt ver.3.3.1
動作確認済み環境
 CPU Pentium-M 1.8GHz
 グラフィック ATI Mobility Radeon 9600
 OS Windows XP SP2




波動方程式を用いて波をシミュレーションするプログラムです。
波の初期値にはガウス関数を用いています。
また水面の波は自由端なので、境界条件として位相が変わらず反射するようにしています。
さらに実際の水面の波に似せるために減衰もさせています。
右上の白いスペース内を任意にクリックすることで、
インタラクティブに波を発生させることができます。

- 使い方 -

ウィンドウ1 波が3次元でアニメーションします。
以下に示すマウスジェスチャが有効です。
  左ボタンでドラッグ   視点の平行移動
  真ん中ボタンでドラッグ 視点のズームイン・ズームアウト
  右ボタンでドラッグ   視点の回転移動
ウィンドウ2 新たに入力する波の位置を指定します。
クリックするとその点に、ドラッグするとマウスが通った経路に波が現れます。
ウィンドウ3 入力する波の初期値を指定します。
新たに波が入力されたとき、これらの値を用いてガウス関数を求めています。
ウィンドウ4 波のシミュレーションの再生/停止等を指定します。
play/pauseボタンは、シミュレーションの再生/一時停止を行います。
next frameボタンは、停止/一時中断時にコマ送りを行います。
stopボタンは、シミュレーションを停止し、波高データをすべてクリアします。


Windows用実行ファイル(zipにて圧縮)
zipファイルを解凍し、フォルダの中にある実行ファイルおよびdllファイルは
必ず同じ場所において、exeファイルを実行してください。

C++コード(zipにて圧縮)


結果


絵をクリックすると、拡大して表示します。

水滴をたらすイメージで波を入力。 波紋が広がり始めました。 波紋がきれいに広がっていきます。 波紋が壁に当たって
はねかえってきました。
自分の名字を初期値にしてみました。 開始早々すごい波です。 波を減衰させているので
ちょっと落ち着きましたが、
まだひどいもんです。
だいぶ落ち着いてきました。


Topページへ