码迷,mamicode.com
首页 > 其他好文 > 详细

第四弹 3D物体无光照绘制

时间:2015-11-21 18:30:46      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

  1 /*************************************************************************
  2     > File Name: frame.cpp
  3     > Author: 
  4     > Mail: 
  5     > Created Time: 2015年11月21日 星期六 15时28分01秒
  6  ************************************************************************/
  7 
  8 #include<iostream>
  9 #include<GL/glut.h>
 10 using namespace std;
 11 static GLfloat spin=0.0;
 12 void init(void)
 13 {
 14     glClearColor(0.0,0.0,0.0,0.0);
 15     glShadeModel(GL_SMOOTH);
 16 }
 17 
 18 void display(void)
 19 {
 20     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 21     glPushMatrix();
 22     glColor3f(1.0,1.0,1.0);
 23 
 24     gluLookAt(-5.0,5.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0);
 25 
 26     glLoadIdentity();
 27     glRotatef(spin,0.0,1.0,0.0);
 28     //glutSolidTeapot(20);
 29     glScalef(20.0f,20.0f,20.0f);
 30     glBegin(GL_TRIANGLES);
 31         //front
 32         glColor3f(1.0,0.0,0.0);
 33         glVertex3f(0.0f,1.0f,0.0f);
 34         glColor3f(0.0,1.0,0.0);
 35         glVertex3f(-2.0f,0.0f,0.0f);
 36         glColor3f(0.0,0.0,1.0);
 37         glVertex3f(2.0f,0.0f,0.0f);
 38         //left
 39         glColor3f(1.0,0.0,0.0);
 40         glVertex3f(0.0f,1.0f,0.0f);
 41         glColor3f(1.0,0.0,1.0);
 42         glVertex3f(0.0f,0.0f,3.0f);
 43         glColor3f(0.0,0.0,1.0);
 44         glVertex3f(2.0f,0.0f,0.0f);
 45 
 46         //right
 47         glColor3f(1.0,0.0,0.0);
 48         glVertex3f(0.0f,1.0f,0.0f);
 49         glColor3f(1.0,0.0,1.0);
 50         glVertex3f(0.0f,0.0f,3.0f);
 51         glColor3f(0.0,1.0,0.0);
 52         glVertex3f(-2.0f,0.0f,0.0f);
 53         //bottom
 54         glColor3f(0.0,1.0,0.0);
 55         glVertex3f(-2.0f,0.0f,0.0f);
 56         glColor3f(0.0,0.0,1.0);
 57         glVertex3f(2.0f,0.0f,0.0f);
 58         glColor3f(1.0,0.0,1.0);
 59         glVertex3f(0.0f,0.0f,3.0f);
 60     glEnd();
 61     glPopMatrix();
 62     glutSwapBuffers();
 63 }
 64 
 65 void spinDisplay(void)
 66 {
 67     spin=spin+2.0;
 68     if(spin>360)
 69         spin=spin-360.0;
 70     glutPostRedisplay();
 71 }
 72 
 73 void reshape(int w,int h)
 74 {
 75     glViewport(0,0,(GLsizei)w,(GLsizei)h);
 76     glMatrixMode(GL_PROJECTION);
 77     glLoadIdentity();
 78     glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);
 79     glMatrixMode(GL_MODELVIEW);
 80     glLoadIdentity();
 81 }
 82 
 83 void mouse(int button,int state,int x,int y)
 84 {
 85     switch(button)
 86     {
 87         case GLUT_LEFT_BUTTON:
 88             if(state == GLUT_DOWN)
 89                 glutIdleFunc(spinDisplay);
 90             break;
 91         case GLUT_MIDDLE_BUTTON:
 92             if(state == GLUT_DOWN)
 93                 glutIdleFunc(NULL);
 94             break;
 95         default:
 96             break;
 97     }
 98 }
 99 
100 int main(int argc,char ** argv)
101 {
102     glutInit(&argc,argv);
103     glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
104     glutInitWindowSize(400,400);
105     glutInitWindowPosition(100,100);
106     glutCreateWindow("OpenGL test");
107     init();
108 
109     glutDisplayFunc(display);
110     glutReshapeFunc(reshape);
111     glutMouseFunc(mouse);
112 
113     glutMainLoop();
114     return 0;
115 }

效果图:

 技术分享

第四弹 3D物体无光照绘制

标签:

原文地址:http://www.cnblogs.com/L-Arikes/p/4984258.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!