天天看點

三維金字塔的繪制

#include "stdafx.h"

#include <GL/glut.h>

GLfloat rtri=60.0; // 設定三角形的旋轉角度

void myDisplay(void)

{  

glClear(GL_COLOR_BUFFER_BIT);

  glLoadIdentity(); // 重置模型觀察矩陣

glScalef (0.25, 0.25, 0.25); // 設定金字塔的縮放大小

    glRotatef(rtri,0.0f,1.0f,0.0f); // 金字塔繞Y軸旋轉1.0倍rtri

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,-1.0f, 1.0f); // 三角形的左下頂點(前側面)

 glColor3f(0.0f,0.0f,1.0f); // 藍色

 glVertex3f( 1.0f,-1.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,-1.0f, 1.0f); // 三角形的左下頂點(右側面)

 glColor3f(0.0f,1.0f,0.0f); // 綠色

 glVertex3f( 1.0f,-1.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,-1.0f, -1.0f); // 三角形的左下頂點(後側面)

 glColor3f(0.0f,0.0f,1.0f); // 藍色

 glVertex3f(-1.0f,-1.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,-1.0f,-1.0f); // 三角形的左下頂點(左側面)

 glColor3f(0.0f,1.0f,0.0f); // 綠色

 glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的右下頂點(左側面)

glEnd(); 

glutSwapBuffers();

}

void main(int argc, char *argv[])       

{

glutInit(&argc, argv); 

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE|GLUT_DOUBLE);

glutInitWindowPosition(100, 200);

glutInitWindowSize(400,400);

glutCreateWindow("Traingle");

glutDisplayFunc(&myDisplay);

glutMainLoop();

}

三維金字塔的繪制

繼續閱讀