三角形と四角形を、三角錐と立方体にする
描画関数の三角形、四角形を作成していたところを、更新して奥行きのある立体を用意して回します。
# メインの描画関数
def DrawGLScene():
# 省略
# 三角錐
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0); # 赤
glVertex3f( 0.0, 1.0, 0.0); # 上 (前面)
glColor3f(0.0,1.0,0.0); # 緑
glVertex3f(-1.0,-1.0, 1.0); # 左下 (前面)
glColor3f(0.0,0.0,1.0); # 青
glVertex3f( 1.0,-1.0, 1.0); # 右下 (前面)
glColor3f(1.0,0.0,0.0); # 赤
glVertex3f( 0.0, 1.0, 0.0); # 上 (右面)
glColor3f(0.0,0.0,1.0); # 青
glVertex3f( 1.0,-1.0, 1.0); # 左下 (右面)
glColor3f(0.0,1.0,0.0); # 緑
glVertex3f( 1.0,-1.0, -1.0); # 右下 (右面)
glColor3f(1.0,0.0,0.0); # 赤
glVertex3f( 0.0, 1.0, 0.0); # 上 (背面)
glColor3f(0.0,1.0,0.0); # 緑
glVertex3f( 1.0,-1.0, -1.0); # 左下 (背面)
glColor3f(0.0,0.0,1.0); # 青
glVertex3f(-1.0,-1.0, -1.0); # 右下 (背面)
glColor3f(1.0,0.0,0.0); # 赤
glVertex3f( 0.0, 1.0, 0.0); # 上 (左面)
glColor3f(0.0,0.0,1.0); # 青
glVertex3f(-1.0,-1.0,-1.0); # 左下 (左面)
glColor3f(0.0,1.0,0.0); # 緑
glVertex3f(-1.0,-1.0, 1.0); # 右下 (左面)
glEnd();
# 省略
# 立方体
glBegin(GL_QUADS);
glColor3f(0.0,1.0,0.0); # 緑
glVertex3f( 1.0, 1.0,-1.0); # 右上 (上面)
glVertex3f(-1.0, 1.0,-1.0); # 左上 (上面)
glVertex3f(-1.0, 1.0, 1.0); # 左下 (上面)
glVertex3f( 1.0, 1.0, 1.0); # 右下 (上面)
glColor3f(1.0,0.5,0.0); # オレンジ
glVertex3f( 1.0,-1.0, 1.0); # 右上 (底面)
glVertex3f(-1.0,-1.0, 1.0); # 左上 (底面)
glVertex3f(-1.0,-1.0,-1.0); # 左下 (底面)
glVertex3f( 1.0,-1.0,-1.0); # 右下 (底面)
glColor3f(1.0,0.0,0.0); # 赤
glVertex3f( 1.0, 1.0, 1.0); # 右上 (前面)
glVertex3f(-1.0, 1.0, 1.0); # 左上 (前面)
glVertex3f(-1.0,-1.0, 1.0); # 左下 (前面)
glVertex3f( 1.0,-1.0, 1.0); # 右下 (前面)
glColor3f(1.0,1.0,0.0); # 黄
glVertex3f( 1.0,-1.0,-1.0); # 左下 (背面)
glVertex3f(-1.0,-1.0,-1.0); # 右下 (背面)
glVertex3f(-1.0, 1.0,-1.0); # 右上 (背面)
glVertex3f( 1.0, 1.0,-1.0); # 左上 (背面)
glColor3f(0.0,0.0,1.0); # 青
glVertex3f(-1.0, 1.0, 1.0); # 右上 (左面)
glVertex3f(-1.0, 1.0,-1.0); # 左上 (左面)
glVertex3f(-1.0,-1.0,-1.0); # 左下 (左面)
glVertex3f(-1.0,-1.0, 1.0); # 右下 (左面)
glColor3f(1.0,0.0,1.0); # 紫
glVertex3f( 1.0, 1.0,-1.0); # 右上 (右面)
glVertex3f( 1.0, 1.0, 1.0); # 左上 (右面)
glVertex3f( 1.0,-1.0, 1.0); # 左下 (右面)
glVertex3f( 1.0,-1.0,-1.0); # 右下 (右面)
glEnd();
# 省略