zoukankan      html  css  js  c++  java
  • NeHe_005_绘制一个3D图形

    本课在介绍了怎样绘制一个真实3D图形。

    代码如下:

    int DrawGLScene(GLvoid)                  // Here's Where We Do All The Drawing
    {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
    glLoadIdentity(); // Reset The Current Modelview Matrix

    //
    //TODO:the code of openGL
    //
    glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0

    glRotatef(rtri,0.0f,1.0f,0.0f); // Rotate The Triangle On The Y axis
    glBegin(GL_TRIANGLES); // Drawing Using Triangles
    glColor3f(1.0f,0.0f,0.0f); // Red
    glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front)
    glColor3f(0.0f,1.0f,0.0f); // Green
    glVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front)
    glColor3f(0.0f,0.0f,1.0f); // Blue
    glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front)

    glColor3f(1.0f,0.0f,0.0f); // Red
    glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right)
    glColor3f(0.0f,0.0f,1.0f); // Blue
    glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right)
    glColor3f(0.0f,1.0f,0.0f); // Green
    glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right)

    glColor3f(1.0f,0.0f,0.0f); // Red
    glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back)
    glColor3f(0.0f,1.0f,0.0f); // Green
    glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back)
    glColor3f(0.0f,0.0f,1.0f); // Blue
    glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back)

    glColor3f(1.0f,0.0f,0.0f); // Red
    glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left)
    glColor3f(0.0f,0.0f,1.0f); // Blue
    glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left)
    glColor3f(0.0f,1.0f,0.0f); // Green
    glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left)
    glEnd();

    glLoadIdentity(); // Reset The Current Modelview Matrix
    glTranslatef(1.5f,0.0f,-7.0f); // Move Right 1.5 Units And Into The Screen 6.0
    glRotatef(rquad,1.0f,0.0f,0.0f); // Rotate The Quad On The X axis ( NEW )
    glBegin(GL_QUADS); // Start Drawing A Quad
    glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green
    glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top)
    glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top)
    glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top)
    glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top)

    glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange
    glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom)
    glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom)
    glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom)
    glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom)

    glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
    glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front)
    glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front)
    glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front)
    glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front)

    glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow
    glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back)
    glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back)
    glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back)
    glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back)

    glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue
    glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left)
    glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left)
    glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left)
    glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Left)

    glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet
    glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right)
    glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right)
    glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right)
    glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right)
    glEnd(); // Done Drawing The Quad

    rtri+=1.0f; // Increase The Rotation Variable For The Triangle ( NEW )
    rquad-=1.0f; // Decrease The Rotation Variable For The Quad ( NEW )

    if(rtri>=360.0f)rtri-=360.0f;
    if(rquad>=360.0f)rquad-=360.0f;

    return TRUE; // Keep Going
    }

    <完>

  • 相关阅读:
    ImageCapOnWeb控件使用说明
    网页摄像头拍照
    js调用ocx控件
    sql中 in 、not in 、exists、not exists 用法和差别
    oracle远程登录解决办法
    oracle导入导出,包括表,表结构,方案,数据库
    字典树
    线段树
    Til the Cows Come Home
    Forgger
  • 原文地址:https://www.cnblogs.com/afarmer/p/1610925.html
Copyright © 2011-2022 走看看