【2010.09.25】
2-1. ボールを自在に描画してみよう!
コンピュータ内で物理現象を再現するためには、様々な数学や物理の基礎概念を正しく理解していることが必要となります。コンピュータ・シミュレーション講座は、ゲームのようにブラックボックス化したソフトウェアを単に動かす講座ではありません。コンピュータ言語(C言語)の文法や論理構造を基礎から理解した上で、物理現象を再現するためのアルゴリズムを習得し、生徒一人ひとりが自らの力で1からコンピュータ内でシミュレーションを完成させていきます。この試行錯誤を繰り返す過程で因果関係を科学的につかむ「科学的思考力」を養います。以上の過程を通じて、中学校・高校で学ぶ物理や数学の基礎概念を実感しながら学ぶことができます。
コンピュータ・シミュレーション講座では、VisualC++によるC++言語の基礎をマスター後、「仮想物理実験室の構築」を行ないます。等速直線運動、等加速度直線運動...と様々な運動のシミュレーションを構築していきます。
2.仮想物理実験室の構築
2-1. ボールを自在に描画してみよう!
2-1-1.グローバル変数の宣言
//////////////////////////////////////////////////////////////////////////
// 変数の定義
//////////////////////////////////////////////////////////////////////////
#define _BITMAP 0 //アニメーション作成用ビットマップの保存 0:しない 1:する
//--------------------------------------------------------
// 仮想物理実験室変数の定義
//--------------------------------------------------------
double t = 0.0; //時刻
double dt= 0.001; //時間刻み
int tn = 0; //ステップ数
int skipCal = 10; //描画回数の間引き
int skipBMP = skipCal *10; //BMP書出し回数の間引き数
int skipDat = 100; //データ書出し回数の間引き回数
// ボールの定義
double ball_r; //ボールの半径
double x, y, z; //ボールの座標(x,y,z)
//--------------------------------------------------------
// 初期値の設定
//--------------------------------------------------------
void SetUp(void){//初期値を設定(main関数の中で実行)
ball_r = 4.0;
x = 0.0;
y = 0.0;
z = 20.0;
}
【やってみよう!!】
① 使用する変数を宣言しよう!
② 変数の値を変えてみて、 意図通りに描画されるか確かめてみよう!
③ 「double dt= 0.001;」 → 「double dt= 0.1;」に変更すると実験室内の時間の進み方が早くなります。
④ 「#define _BITMAP 0」 → 「#define _BITMAP 1」 に変更するとアニメーション用のBMPファイルを作成することができます。
【チェック】
① intとは?
② doubleとは?
【覚えること】
① void SetUp(void){ ~ } のなかで、初期値を設定します
2-1-2.ボールの描画関数(drowBall)を操作しよう
//--------------------------------------------------------
// 計算と物体の描画
//--------------------------------------------------------
void Calculate(){
}
void DrawStructure(){
//ボールの描画
drowBall( x , y , z , ball_r , 20 , ms_ruby);
cout << x << " " << y << " " << z << endl;
}
【やってみよう!!】
① 使用する変数を宣言しよう!
② 変数の値を変えてみて、 意図通りに描画されるか確かめてみよう!
③ 「double dt= 0.001;」 → 「double dt= 0.1;」に変更すると実験室内の時間の進み方が早くなります。
④ 「#define _BITMAP 0」 → 「#define _BITMAP 1」 に変更するとアニメーション用のBMPファイルを作成することができます。
【チェック】
① intとは?
② doubleとは?
【覚えること】
① void SetUp(void){ ~ } のなかで、初期値を設定します