用顶点数组绘制立方体
来源:互联网 发布:网络布线施工 编辑:程序博客网 时间:2024/04/30 02:56
- #include <stdlib.h>
- #include <stdio.h>
- #include <gl/glut.h>
- static GLfloat vertices[] = {-5.0, 0.0, 5.0,
- 5.0, 0.0, 5.0,
- 5.0, 0.0, -5.0,
- -5.0, 0.0, -5.0,
- -5.0, 10.0, 5.0,
- 5.0, 10.0, 5.0,
- 5.0, 10.0, -5.0,
- -5.0, 10.0, -5.0};
- /*
- static GLfloat vertices[] = {-0.25, 0.0, 0.25,
- 0.25, 0.0, 0.25,
- 0.25, 0.0, -0.25,
- -0.25, 0.0, -0.25,
- -0.25, 0.5, 0.25,
- 0.25, 0.5, 0.25,
- 0.25, 0.5, -0.25,
- -0.25, 0.5, -0.25};
- */
- static GLubyte front[] = {0, 1, 5, 4};
- static GLubyte right[] = {1, 2, 6, 5};
- static GLubyte back[] = {2, 6, 7, 3};
- static GLubyte left[] = {0, 4, 7, 3};
- static GLubyte bottom[] = {0, 1, 2, 3};
- static GLubyte top[] = {4, 5, 6, 7};
- static GLfloat colors[] = {0.5, 0.3, 0.3,
- 0.6, 0.5, 0.6,
- 0.8, 0.3, 0.1,
- 0.2, 0.5, 0.1,
- 0.4,0.8, 0.3,
- 0.9, 0.1, 0.32,
- 0.2, 0.1, 0.6,
- 0.9, 0.2, 0.1};
- void init(void)
- {
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_SMOOTH);
- }
- void display(void)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glLoadIdentity();
- gluLookAt(25.0, 25.0, 25.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
- // gluLookAt(2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
- // glColor3f(1.0, 1.0, 1.0);
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_COLOR_ARRAY);
- glColorPointer(3, GL_FLOAT, 0, colors);
- glVertexPointer(3, GL_FLOAT, 0, vertices);
- glDrawElements(GL_LINE_LOOP, 4, GL_UNSIGNED_BYTE,front);
- glDrawElements(GL_LINE_LOOP, 4, GL_UNSIGNED_BYTE, right);
- glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, back);
- glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, left);
- glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, bottom);
- glDrawElements(GL_LINE_LOOP, 4, GL_UNSIGNED_BYTE, top);
- glDisableClientState(GL_COLOR_ARRAY);
- glDisableClientState(GL_VERTEX_ARRAY);
- glFlush();
- }
- void reshape(int w, int h)
- {
- double aspect;
- if(0 == h)
- h = 1;
- aspect = 1.0*w/h;
- glViewport(0, 0, (GLsizei)w, (GLsizei)h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0, aspect, 0.1, 50.0);
- glMatrixMode(GL_MODELVIEW);
- }
- int main(int argc, char *argv[])
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
- glutInitWindowSize(320, 320);
- glutInitWindowPosition(100, 100);
- glutCreateWindow("Cube First");
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
- 用顶点数组绘制立方体
- OpenGL ES 使用顶点索引绘制立方体
- 21 Three.js使用顶点绘制立方体
- OpenGL 通过VBO实现顶点数组绘制顶点
- 用DirectX绘制使用纹理的立方体
- 用webgl绘制一个彩色旋转立方体
- OpenGL状态管理和绘制几何物体之顶点数组
- OpenGL使用顶点数组进行图形的绘制
- 用顶点缓存绘制一个三角形
- 优化的立方体绘制
- DirectX3D中绘制立方体
- opengl绘制立方体
- D3D绘制彩色立方体
- opengles绘制立方体
- opengl绘制纹理立方体
- Ogre 绘制立方体
- 28 WebGL绘制立方体
- OpenGL-绘制旋转立方体
- 小学生数学测试软件
- 找工作
- 笔记56
- 工作中的成长
- MATLAB滤波器
- 用顶点数组绘制立方体
- this变量
- DirectX骨骼动画,地形,级球形天空体的演示
- OpenCV图像、矩阵、数组
- 我的ACM第一步——Sicily 1000
- 5.7号<疯狂的程序员>读书笔记
- try---finally
- spring中的集合装配
- 分散配置