pptファイル

Download Report

Transcript pptファイル

ファーストイヤー・セミナーⅡ

第14回 2次元グラフィックス(2)

グラフィックの利用(復習)

 最初に #include を忘れずに ← 間違えないよう注意

直線を描く関数(復習)

  Line(x1, y1, x2, y2) は点(x1, y1)から点(x2, y2)まで直 線を引く関数である Line(10, 10, 50, 50) なら点(10, 10)から点(50, 50)まで直 線が引かれる

直線の設定(復習)

 直線を描く場合には、 (1)直線の色を指定する SetLineColor( 色指定 ); (2)直線の形式・太さを指定する SetLineStyle( 形式,太さ ); (3)線を描く Line (始点のx座標, 始点のy座標, 終点のx座標, 終点のy座標) とする。

色指定

  色指定は以下のようになる。 色の指定は、実際に描画する部分の直前におこなうこと。

グラフィックの位置(復習)

 グラフィックでは左上が(0, 0)となり、x 座標は右へ、y 座 標は下へ行くほど大きくなる (0, 0) x 軸 (10, 10) (50, 50) y 軸

グラフの描画

 y = sin x のグラフ(正弦波)を描いてみよう ←math.h

も必要 ← 「 P 」をあらかじめ定義し、プログラム中で使う 角度(°)をラジアンに変換するためのもの ←x 軸、 y 軸の描画 ← 線の色を赤に変更 ← 角度を 1 度ずつ変化させ、 前の点 (x1, y1) から 次の点 (x2, y2) まで線を引く

#define の利用

 プログラム中で使用する定数を、あらかじめプログラム ファイルの最初の部分(#include~の後)に書いておくこ とができる  書式: #define 変数名 例) #define Pai 数値 3.14159

 ケタの長い数値や、頻繁に出てくる定数などをあらかじ め書いておくと便利

表示例

 まずグラフの軸を引き、そのあと少しずつ (x1, y1)、(x2, y2) を 計算しながら連続線を引いていく (50,20) (50,200) (50,370) (700,200)

練習

 y = cos x のグラフ(余弦波)を描け

様々な図形の描画

 四角形を描く関数 Rectangle (x1, y1, x2, y2); 左上の座標が (x1, y1)、右下の座標が (x2, y2) の四角形  円(だ円)を描く関数 Ellipse (x1, y1, x2, y2); 左上の座標が (x1, y1)、右下の座標が (x2, y2) の四角形 に内接する円(だ円)  図形内部の色指定 SetFillColor ( 色指定 ); 色指定をしない場合は黒で塗りつぶされる

練習:様々な図形の描画

 赤い四角形と青い円を描いてみよう

ボールの運動

  四角形の中をボールが跳ね回るプログラムを作ってみよう プログラムが長いので資料の方も参照して作成してください プログラム冒頭部分 ←rand 関数を使うので stdlib.h も入れる L: 四角形の左側の R: 四角形の右側の x 座標 x 座標 T: 四角形の上側の B: 四角形の下側の y 座標 y 座標 r: ボールの半径

ボールの運動(2)

メイン関数冒頭部分 x, y : ボールの中心座標 vx, vy : ボールの進行方向と進む距離 x, y, vx, vy の初期化 vx, vy はマイナスの場合もありえるので ランダムに( 50 %の確率で)- 1 をかけておく

ボールの運動(3)

繰り返し部分 白い四角形を描く x, y の位置を計算する x 軸方向に vx 、 y 軸方向に vy だけ移動 x, y の位置を判定し、枠をはみ出したら 枠内に戻し、進行方向を変える ( 左へはみ出したら右へ、 下へはみ出したら上へ、 というように)

ボールの運動(4)

ボール描画部分 塗る色を赤色に設定 x, y を中心に半径 円を描画 r の ↑ このままだと実行が早すぎて見えないので 無意味な計算をして時間稼ぎ (普通は sleep 関数などを使いますが、 Ultra-C では使えないので苦肉の策 ちょっと恥ずかしい力技なので将来 プログラマなどになる人はマネしないように)

第14回のレポート

 以下のプログラムを作成し、メールで提出してください  先程のボールの運動で、壁にぶつかるごとに色 がボールの色が変わるようにしてみてください  考え方:vx, vy の正負によって進行方向を4つに 分け、if 文を使ってボールの色を変えてみる