第7回 グラフィクス4(マウスの利用)

はじめに

各課題に取り組む手順

[準備]

前回までのことを踏まえて,ライブラリなどを適切な場所へコピーしておく.
第3回のページへ

演習7.1

マウスでドラッグされた場所に矩形を描画するプログラムを作成する.
以下のソースコードを入力する.

Step 1: 矩形を描画するコード例

OpenGLとGLUTを用いたプログラムは,以下のようにイベント駆動型となる.

Event-Driven

マウス操作イベントハンドラ関数mouse()

 書式: void mouse(int button, int state, int x, int y)
 引数: 
   int button: 左ボタン(GLUT_LEFT_BUTTON)、中央ボタン(GLUT_MIDDLE_BUTTON)、右ボタン(GLUT_RIGHT_BUTTON)
   int state: ボタンを押した場合(GLUT_DOWN)、ボタンを離した場合(GLUT_UP)
   int x, y: マウスのスクリーン座標(x, y)。ピクセル単位で左上が原点(0,0)。
 戻り値: 
   なし

Step 2: マウス操作イベントハンドラ関数のmouse()を追加する

Step 3: スクリーン座標系の確認

スクリーン座標系の表示コード例

Step 4: スクリーン座標系から空間座標系への変換

Screen Coordinate

空間座標系の表示コード例

Step 5: マウスクリック・リリース時の空間座標を格納して、新しい矩形を描画

ソースコード

課題7.1

描画される三角形の座標は、1)マウスの左ボタンを押した座標、2)左ボタンを離した座標、3)ランダム座標の3点とすること.

ヒント

 ((double)rand()/RAND_MAX)*2-1;

課題7.2 (応用)

ヒント

レポート

提出先・期限
https://www.kagoshima-u.ac.jp/manaba/の「プログラミング言語I及び演習」のレポートより提出
演習当日の23:55まで
内容
Microsoft Wordを用いてレポートを作成すること.

下記について記述すること.

提出ファイル
Wordファイルにソースコードやキャプチャした実行画面などを貼り付けてmanabaのレポートから提出すること.
(*.cファイルを送る必要はありません。)
テンプレート等(Word)
Word表紙 (回数やタイトルなどを適宜修正して使うこと.)