NEHE阅读笔记-3D多边形

来源:互联网 发布:将字符串变成数组 编辑:程序博客网 时间:2024/04/27 18:57

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 BufferglLoadIdentity();// 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}

这里没有什么技巧,就是旋转轴




0 0