OpenGL覚え書き2 描画
デフォルトの状態では原点がウインドウの中心で、幅高さが1.0の座標系で設定されています。
描画色の設定
glColor**関数で色を設定します。
例えばglColor3fはfloat型の値RGB値を引数にする関数、glColor4dはdouble型のRGBA値を引数にします。
RGBの値は0.0〜1.0で指定します。
glColor3f(0.7,0.7,1.0)
矩形の描画
glRect*関数を使います。
glRectf(0,0,1.0,1.0)
int,short,float,double型の引数の場合はそれぞれglRecti,glRects,glRectf,glRectdというコマンドが対応しています。
頂点座標による描画
glVertex**関数で頂点を定義することができます。
glVertex2f(0.0,0.0) glVertex3f(0.0,0.0,1.0) glVertex4f(0.0,0.0)
配列を引数にしたglVertex**v関数も与えられています。
v=[0.1,0.2] glVertex2dv(v)
glBegin,glEndの間に描画したい頂点の座標を設定します。
glBegin(GL_TRIANGLE_STRIP) v=[-0.5,-0.2] glVertex2dv(v) glVertex2d(0.,0.) glVertex2d(0.7,0.7) glVertex2d(0.,0.7) glEnd()
頂点に対応した図形描画するためのモードがいくつか用意されており、glBeginの引数で定めることができます。
それぞれのモードは以下の通りです。
8個の頂点{1,2,3,4,5,6,7,8}を描画したとき、
GL_POINTS | 各点を別々に描画 |
GL_LINES | 直線1-2,直線3-4,直線5-6,直線7-8 |
GL_LINE_STRIP | 直線1-2-3-4-5-6-7-8 |
GL_LINE_LOOP | 直線1-2-3-4-5-6-7-8-1(ループ状) |
6個の頂点{1,2,3,4,5,6}を描画したとき、
GL_TRIANGLES | 三角形(123),三角形(456) |
GL_TRIANGLE_STRIP | 三角形(123),三角形(234),三角形(345),三角形(456) |
GL_TRIANGLE_FAN | 三角形(123),三角形(134),三角形(145),三角形(156) |
8個の頂点{1,2,3,4,5,6,7,8}を描画したとき、
GL_QUADS | 四角形(1234),四角形(5678) |
GL_QUAD_STRIP | 四角形(1234),四角形(3456),四角形(5678) |
GL_POLYGON | 12345678を頂点とする多角形 |
GLUTによる描画
GLUTのいくつかのコマンドを使うと複雑な立体を簡単に描画することができます。ソリッドかワイヤーモデルかによって次のようなコマンドが提供されています。
glutSolid〜
glutWire〜
〜として、Cube、Sphere、Cone、Torus、Tetrahedron、Octahedron、Dodecahedron、Icosahedronが用意されており、それぞれ立方体、球、円錐、トーラス、正四面体、正八面体、正十二面体、正二十面体、ティーポットを描くことができます。
glutSolidTeapot(0.2) glutWireCube(0.2) glutWireSphere(0.2,20,20) glutWireCone(0.2,0.1,20,20) glutWireTorus(0.1,0.3,20,20)