opengl在console程序中简单画图的过程
2013-06-24 17:24
369 查看
1.在main函数中实现初始化工作、初始化glut、窗口、gl、事件处理、主循环
2.在reshape中实现display之前的模型视图矩阵设置、投影矩阵设置、视口设置等
3.在display函数中实现绘图操作,一般会用到模型视图矩阵堆栈,实现图形的转换
4.辅助的一些响应函数,mouse,keyboard等实现
例子:
2.在reshape中实现display之前的模型视图矩阵设置、投影矩阵设置、视口设置等
3.在display函数中实现绘图操作,一般会用到模型视图矩阵堆栈,实现图形的转换
4.辅助的一些响应函数,mouse,keyboard等实现
例子:
#include<gl/glut.h> static int year=0; static int day=0; void display() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,1.0,1.0); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glutWireSphere(1.0,20,16); glRotatef(year,0.0,1.0,0.0); glTranslatef(2.0,0.0,0.0); glRotatef(day,0.0,1.0,0.0); glutWireSphere(0.2,10,8); glPopMatrix(); glutSwapBuffers(); } void reshape(int w, int h) { //视口变换 glViewport(0,0,w,h); //投影变换 //模型视图变换 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // gluLookAt(0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,-1.0); gluLookAt(0.0,0.0,5.0,0.0,0.0,0.0,2.0,1.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60,w/h,1.0,20.0); } void keyboard(unsigned char key, int x, int y) { switch(key) { case 'd': day=(day+10)%360; glutPostRedisplay(); break; case 'D': day=(day-10)%360; glutPostRedisplay(); break; case 'y': year=(year+5)%360; glutPostRedisplay(); break; case 'Y': year=(year-5)%360; glutPostRedisplay(); break; default: break; } } void main(int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize(600,480); glutInitWindowPosition(300,300); glutCreateWindow("sun"); glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutReshapeFunc(reshape); glutMainLoop(); }
相关文章推荐
- 一个简单的OpenGL程序
- 简单的OpenGL窗口程序
- cocos2d-x 简单OpenGL 画图
- 记录一个简单的ASM程序破解过程
- 最简单的ASP.Net程序处理过程(后续)
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中
- vb.net graphic 简单的画图程序
- Win8打开系统自带画图程序的几种方法(超简单)
- Object_c基础——oc程序与C语言程序开发过程的异同简单认识
- 创建使用shader的OpenGL简单工程过程
- Html5 Canvas+Javascript实现一个简单画图程序(二)
- 编写简单的OpenGL程序
- 李洪强漫谈iOS开发[C语言-002]-开发概述程序的本质与简单执行过程
- Qt上OpenGL画图不能正常使用,程序崩溃
- 一个简单的场景观察程序(OpenGL)
- vs2005中第一个opengl程序配置过程
- 1.2 一段简单的OpenGL程序
- Asp.Net基础 - 1.Web应用程序和网站 + 2.最简单的ASP.Net程序处理过程 + 3.ASP.Net的IsPostBack揭秘
- Qt简单窗体程序全界面创建过程
- Android下Opengl程序显示文字的简单方法