Cubeを書く
なんだかんだ言って最初はテストでCubeを使う。
void drawCube(double x, double y, double z) { int i, j; x *= 0.5; y *= 0.5; z *= 0.5; GLdouble vertex[][3] = { {x, y, z }, // 0 {-x, y, z }, // 1 {-x, -y, z }, // 2 {x, -y, z }, // 3 {x, y, -z }, // 4 {-x, y, -z }, // 5 {-x, -y, -z }, // 6 {x, -y, -z } // 7 }; static int face[][3] = { // front { 0, 1, 2 }, { 0, 2, 3 }, // back { 5, 4, 7 }, { 5, 7, 6 }, // top { 0, 4, 5 }, { 0, 5, 1 }, // bottom { 2, 6, 7 }, { 2, 7, 3 }, // right { 3, 7, 4 }, { 3, 4, 0 }, // left { 1, 5, 6 }, { 1, 6, 2 } }; static GLdouble normal[][3] = { { 0.0, 0.0, 1.0 }, { 0.0, 0.0, 1.0 }, { 0.0, 0.0, -1.0 }, { 0.0, 0.0, -1.0 }, { 0.0, 1.0, 0.0 }, { 0.0, 1.0, 0.0 }, { 0.0, -1.0, 0.0 }, { 0.0, -1.0, 0.0 }, { 1.0, 0.0, 0.0 }, { 1.0, 0.0, 0.0 }, { -1.0, 0.0, 0.0 }, { -1.0, 0.0, 0.0 }, }; GLfloat color[][4]={ {1.0, 0.0, 0.0, 0.0}, {1.0, 1.0, 0.0, 0.0}, {0.0, 1.0, 0.0, 0.0}, {0.0, 1.0, 1.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {1.0, 0.0, 1.0, 0.0}, {1.0, 1.0, 0.0, 0.0}, {1.0, 0.0, 0.0, 0.0}, {1.0, 0.0, 0.0, 0.0}, {1.0, 1.0, 0.0, 0.0}, {0.0, 1.0, 0.0, 0.0}, {0.0, 1.0, 1.0, 0.0} }; glBegin(GL_TRIANGLES); for (j = 0; j < 12; j++) { glColor3fv(color[j]); glNormal3dv(normal[j]); for ( i = 0; i < 3; i++ ) { glVertex3dv(vertex[face[j][i]]); } } glEnd(); }