简单三维形状的绘制

这一部分没有多大的难度,就是在paintGL()函数中多绘制几个三角形,几个矩形,从而形成人眼看到的立体形状。主要还是深刻的理解glRotatef()这个函数是如何旋转对象的。

下面是部分程序,

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glLoadIdentity();//每次绘制时,都要重新加载 mode view matrix

    /*开始绘制多个三角形,形成立体的金字塔形*/
    glTranslatef( x,y, z );         //对相机进行x,y,z方向的移动
    glRotatef(rotateTri,1.0,.0,.0); //对下面的三角形进行旋转,显示的是旋转后的形状
    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();

还是上个动态图吧,继续学习ing

图片描述

你在寻找一起学习Qt+openGL的小伙伴吗?

加群吧:QQ Group:159336168
一起学习,分享资料,共同解决问题。
图片描述

学习使用latex,顺便每天晚上把学习的体会写一下。加了个油

图片描述


猫哥
305 声望44 粉丝

热衷于研究各类互联网技术,热爱学习,热爱生活!