140 likes | 846 Vues
初年次セミナー. 第14回 2次元グラフィックス(2). C 言語におけるグラフィックス処理(復習). C 言語で画面上にグラフィックスを表示する場合、処理系や使用するアプリケーションによって様々な違いがある Windows 上でグラフィックスを表示するには Windows API を利用する方法や、専用のソフトウエアを利用する方法などがあるが、いずれも作業が複雑になる 初年次セミナーではグラフィックス表示のために作成された「 wingxa.h 」というファイルを用いて、なるべく簡単にグラフィックス処理を体験しよう
E N D
初年次セミナー 第14回 2次元グラフィックス(2)
C言語におけるグラフィックス処理(復習) • C言語で画面上にグラフィックスを表示する場合、処理系や使用するアプリケーションによって様々な違いがある • Windows上でグラフィックスを表示するにはWindows APIを利用する方法や、専用のソフトウエアを利用する方法などがあるが、いずれも作業が複雑になる • 初年次セミナーではグラフィックス表示のために作成された「wingxa.h」というファイルを用いて、なるべく簡単にグラフィックス処理を体験しよう • 参考テキスト:「Windowsですぐにできる C言語グラフィックス」、安居院猛、佐野元昭、関根詮明 共著、昭晃堂
wingxa.h の導入 • 「wingxa.h」は、参考テキストで使用されているグラフィックス処理のためのヘッダファイル • Windows上でグラフィックス処理をするためのオリジナルの関数がまとめられている • デスクトップに「wingxa.h」を配信するので、届いたことを確認して「14」フォルダにコピーすること(前回使用した「wingxa.h」を「14」フォルダにコピーしてもよい) • 届かない場合は下記のホームページの「初年次セミナー」のリンクから右クリックでダウンロードし、「14」フォルダへコピー URL: http://ns1.shudo-u.ac.jp/~iyori/
ウインドウを描画する • ウインドウの描画には以下のような関数を使う • 描画色の指定には以下のような関数を使う ※color16関数で指定できる色は以下の通り
様々な図形を描画する • 図形描画に使用できる関数は以下のようなものがある
直線の組み合わせ図形を描いてみよう • 直線描画の関数を使って、以下の図形を描いてみよう
直線の組み合わせ図形のプログラム • 左下から中央へ赤い線を、中央から右下へ青い線を引く • 原点を左下端から(50,50)に設定 • 左下の点はx座標を0から250まで • 10ずつ増やす(y座標は0) • 中央の点はy座標を0から250まで • 10ずつ増やす(x座標は250) • 右下の点はx座標を500から250まで • 10ずつ減らす(y座標は0)
sin関数の描画 • 直線描画の関数を使って、sin関数のグラフを描いてみよう
sin関数の描画 • 原点を左下端から(50,200)に設定 • (-50,0)から(650,0)へ線を引く(x軸) • (0,200)から(0,-200)へ線を引く(y軸) • (x1,y1)から(x2,y2)までの短い直線 • をいくつも描いてグラフにする • m_rad は角度をラジアンに変換する • ための係数 • 100倍しているのは、そのままだと • グラフが小さすぎるため
動画を描く:ボールの運動 • ウインドウ内をボールが跳ねる動画を描いてみよう ・・・
ボールの運動:前半部分 • 動画の際はginit(2)とする • (x,y)・・・ボールの中心座標 • r・・・ボールの半径 • vx・・・x方向の移動距離 • vy・・・y方向の移動距離 • 0~359°の間で進行方向 • の角度をランダムに決める • srand関数で毎回進行方向 • がランダムになるようにする • (time.hが必要)
ボールの運動:後半部分 何かキーが押されるまで実行継続 • x-r, x+r はそれぞれボール • の左端と右端の座標 • ボールがウインドウの外に • 出たら、枠内に戻して進行 • 方向を変更する • 左右いずれかにはみ出し • たときには、x方向を反転 • 上下いずれかにはみ出し • たときには、 y方向を反転 バッファの切り替えをして画像を 描画することで、チラツキを抑える
第14回のレポート • 以下のプログラムを作成し、メールで提出してください • 宛先: (1)ボールの運動プログラムで、壁に当たるたびにボールの色が変わるもの (2)sin関数のグラフを右に少しずつずらしながら、多数の線を描画するプログラム