80 likes | 256 Vues
精密工学科プログラミング基礎 第 6 回資料 その 2 (11/18 実施 ). 資料の URL : http://lecture.ecc.u-tokyo.ac.jp/~tohtake/. 今回の授業で追加で習得してほしいこと : グラフィクスライブラリ ( OpenGL )を例にして、 他の人が作った関数ライブラリを使ってみる ライブラリ中の関数の使い方 繰り返し・条件分岐の復習 図形を表示して楽しむ. OpenGL と は?. データ ( 0,0) ( 1,0) ( 0,1). ディスプレイに 表示.
E N D
精密工学科プログラミング基礎第6回資料その2(11/18実施)精密工学科プログラミング基礎第6回資料その2(11/18実施) 資料のURL : http://lecture.ecc.u-tokyo.ac.jp/~tohtake/ 今回の授業で追加で習得してほしいこと: • グラフィクスライブラリ(OpenGL)を例にして、他の人が作った関数ライブラリを使ってみる • ライブラリ中の関数の使い方 • 繰り返し・条件分岐の復習 • 図形を表示して楽しむ
OpenGL とは? データ(0,0)(1,0) (0,1) ディスプレイに表示 グラフィクス出力のための面倒な計算を 行うための関数ライブラリ 座標値を渡すだけで絵が描ける
OpenGL で描くことができる図形 3角形 4角形 glBegin(GL_POLYGON); glVertex2d( 1, 1); glVertex2d(-1, 1); glVertex2d(-1,-1); glVertex2d( 0,-1); glEnd(); glBegin(GL_POLYGON); glVertex2d(0,0); glVertex2d(1,0); glVertex2d(0,1); glEnd(); • 点・線分・多角形 などの基本図形 • glBegin(図形タイプ) で始めて、 glEnd() で閉じる。 • glVertex2d(x,y)で図形を定義する点の座標を指定 • “2d” は 2次元のdouble型という意味
描ける図形タイプ 線分2本を描画 3点を描画 glLineWidth(2.5); glBegin(GL_LINES); glVertex2d(0,0); glVertex2d(1,0); glVertex2d(0,1); glVertex2d(1,1); glEnd(); glPointSize(3); glBegin(GL_POINTS); glVertex2d(0,0); glVertex2d(1,0); glVertex2d(0,1); glEnd(); 1本目 2本目 描画される点(線分)の 大きさ(太さ)の設定
色の設定 glBegin(GL_POINTS); glColor3d(1,0,0); glVertex2d(0,0.5); glColor3d(0,1,0); glVertex2d(0,0); glColor3d(0,0,1); glVertex2d(0.5,0); glEnd(); • glColor3d で、(R, G, B) を指定する • 値は 0.0~1.0 まで
例: 円を点で描画 ・・・・ (省略) /* 図形描画のためのOpenGLのプログラムをここに書く */ void paint(){ inti; /* 繰り返しのカウンタ */ glPointSize(3.0); /* 点の大きさ (単位はピクセル) */ glColor3d(1, 1, 1); /* 色の設定. 光の3原色(赤, 緑, 青) */ /* 点で円を描く */ for(i=0; i<100; i++){ double a = 2*3.1415*i/100; /* 角度 */ glBegin(GL_POINTS); glVertex2d(200*cos(a)+250, 200*sin(a)+250); glEnd(); } } ・・・・・(省略) ここを変えると図形が変わる 中心 (250, 250) 半径 200 の円 ウィンドウサイズは 500 × 500 三角関数で、円周上に100個の点を並べる。
MACでのコンパイル方法 gcc -framework OpenGL –framework GLUT sample.c MAC のコンパイルにおいて、ライブラリを指定するオプションです. メモ : OpenGL : 2D・3Dグラフィックス描画のためのライブラリです. GLUT : ウィンドウを出したりマウスの操作を行うための OpenGL の補助ライブラリです. OpenGL と GLUT というライブラリを使用
課題 マウスやキーボードの利用やアニメーションなどもできる。 詳しくは下記のURLなどを参考。 http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html 以下を表示するプログラムを作成せよ。 • 同心円 • 3色のルーレット • 2色のチェック模様 • 3色以上も考えてみよ