1.上次忘记写了,GL的坐标是右手准则的,如果你是理科生,就非常熟悉了把,接着我们绘制3D,我们根据旋转和各个平面的渲染就可以制造静态3D了,不多说
对于三角我们渲染左右两个品面
int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
glLoadIdentity(); // Reset The Current Modelview Matrix
//开始GL绘画部分
glTranslatef(-1.5f,0.0f,-6.0f); // 相对当前的位子移动光标
glRotatef( 10.0f,1.0f,0.0f,0.0f); // (关键的地方)
glBegin(GL_TRIANGLES); // 绘制三角形 (x,y,z)均相对于光标
//左半平面
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, 0.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f( 0.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, 0.0f);
glColor3f(0.0f,1.0f,0.0f);
glVertex3f( 0.0f,0.0f, 1.0f);
glEnd();
glLoadIdentity(); // 重置当前的模型视图矩阵,"光标"回到中间
glTranslatef(1.5f,0.0f,-6.0f); // 相对当前的位子移动光标
glRotatef(-40.0f,0.0f,1.0f,0.0f);
glRotatef( 20.0f,1.0f,0.0f,0.0f);
glBegin(GL_QUADS); // 绘制四角形 (x,y,z)均相对于光标
glColor3f(0.5f,0.5f,1.0f);
glVertex3f( -1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f,-1.0f, 1.0f);
glVertex3f( -1.0f,-1.0f, 1.0f);
glColor3f(1.0f,0.5f,0.5f);
glVertex3f( -1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( -1.0f, 1.0f, 1.0f);
glColor3f(0.5f,1.0f,0.5f);
glVertex3f( 1.0f, 1.0f, 1.0f);
glVertex3f( 1.0f, 1.0f, -1.0f);
glVertex3f( 1.0f,-1.0f, -1.0f);
glVertex3f( 1.0f,-1.0f, 1.0f);
glEnd();
//结束GL绘画部分
return TRUE; // Everything Went OK
}
这里没有什么技巧,就是旋转轴