GLfloat xtri;
GLfloat ytri;
GLfloat ztri;
int DrawGLScene(GLvoid) // 從這里開始進行所有的繪制
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度緩存
glLoadIdentity(); // 重置模型觀察矩陣
glTranslatef(-0.0f,0.0f,-6.0f); // 左移 1.5 單位,並移入屏幕 6.0
glRotatef(xtri,1.0f,0.0f,0.0f); // 繞Y軸旋轉金字塔
glRotatef(ytri,0.0f,1.0f,0.0f); // 繞Y軸旋轉金字塔
glRotatef(ztri,0.0f,0.0f,1.0f); // 繞Y軸旋轉金字塔
glBegin(GL_TRIANGLES); // 開始繪制金字塔的各個面
glColor3f(1.0f,0.0f,0.0f); // 紅色
glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點 (前側面)
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f(-1.0f,-0.0f, 1.0f); // 三角形的左下頂點 (前側面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f( 1.0f,-0.0f, 1.0f); // 三角形的右下頂點 (前側面)
glColor3f(1.0f,0.0f,0.0f); // 紅色
glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點 (右側面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f( 1.0f,-0.0f, 1.0f); // 三角形的左下頂點 (右側面)
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f( 1.0f,-0.0f, -1.0f); // 三角形的右下頂點 (右側面)
glColor3f(1.0f,0.0f,0.0f); // 紅色
glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點 (后側面)
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f( 1.0f,-0.0f, -1.0f); // 三角形的左下頂點 (后側面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f(-1.0f,-0.0f, -1.0f); // 三角形的右下頂點 (后側面)
glColor3f(1.0f,0.0f,0.0f); // 紅色
glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點 (左側面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f(-1.0f,-0.0f,-1.0f); // 三角形的左下頂點 (左側面)
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f(-1.0f,-0.0f, 1.0f); // 三角形的右下頂點 (左側面)
glEnd(); // 金字塔繪制結束
glBegin(GL_QUADS); // 開始繪制金字塔的底部
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f(-1.0f, 0.0f,1.0f); // 四邊形的右上頂點 (頂面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f(1.0f, 0.0f,1.0f); // 四邊形的左上頂點 (頂面)
glColor3f(0.0f,1.0f,0.0f); // 綠色
glVertex3f(1.0f, 0.0f, -1.0f); // 四邊形的左下頂點 (頂面)
glColor3f(0.0f,0.0f,1.0f); // 藍色
glVertex3f( -1.0f, 0.0f, -1.0f); // 四邊形的右下頂點 (頂面)
glEnd();
xtri+=0.8f;
ytri+=0.5f;
ztri+=0.9f;
return TRUE; // 一切 OK
}