OpenGL秒安装及显示
快毕业了,狂补OpenGL中。。。。
想当初安装opencv那么麻烦,现在openGL几秒钟就安装好了
注意:这里前提是你建立好了工程,如果连工程都不会建立~~GG
测试代码:
复制到工程进行测试!
// source: http://jingyan.baidu.com/article/d5c4b52bca5005da560dc5d6.html #include <GL/glut.h> #include <stdlib.h> #include <math.h> #include <stdio.h> , spin = , day = ; static GLint fogMode; ; const GLfloat R = 1.0f; const GLfloat Pi = 3.1415926536f; void DrawCircle() { int i; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINE_LOOP); ; i < n; ++i) { glColor3f(1.0, 0.0, 0.0); glVertex2f(R*cos( * Pi / n*i), R*sin( * Pi / n*i)); } glEnd(); glFlush(); } void init(void) { GLfloat position[] = { 0.5, 0.5, 3.0, 0.0 }; glEnable(GL_DEPTH_TEST); //防止遮挡 glLightfv(GL_LIGHT0, GL_POSITION, position); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); { GLfloat mat[] = { 0.1745, 0.01175, 0.01175 }; glMaterialfv(GL_FRONT, GL_AMBIENT, mat); mat[] = ] = ] = 0.04136; glMaterialfv(GL_FRONT, GL_DIFFUSE, mat); mat[] = ] = ] = 0.626959; glMaterialfv(GL_FRONT, GL_SPECULAR, mat); glMaterialf(GL_FRONT, GL_SHININESS, 0.6*128.0); } glEnable(GL_FOG); { GLfloat fogColor[] = { 0.5, 0.5, 0.5, 1.0 }; fogMode = GL_EXP; glFogi(GL_FOG_MODE, fogMode); glFogfv(GL_FOG_COLOR, fogColor); glFogf(GL_FOG_DENSITY, 0.35); glHint(GL_FOG_HINT, GL_DONT_CARE); glFogf(GL_FOG_START, 1.0); glFogf(GL_FOG_END, 5.0); } glClearColor(0.5, 0.9, 0.9, 1.0); /* fog color */ } void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3f(0.0, 1.0, 1.0); glPushMatrix(); //记住自己的位置 glutSolidSphere(, ); /* 画太阳半径、 20经度、16纬度*/ glRotatef(spin, 0.0, 1.0, 0.0); //自转,绕着一个向量以给定角度旋转(正的为逆时针) glTranslatef(2.0, 1.0, 0.0); glRotatef(spin, 1.0, 0.0, 0.0); //公转 glRectf(0.1, 0.1, 0.5, 0.5); glColor3f(0.0, 0.0, 1.0); glutWireSphere(, ); /* 画第一颗小行星 */ glColor3f(1.0, 0.0, 0.0); glTranslatef(2.0, 1.0, 0.0); glRotatef( * spin, 0.0, 1.0, 0.0); glutSolidSphere(, ); glPopMatrix();//回到原来的位置 glutSwapBuffers(); } void spinDisplay(void) { spin = spin + ; ) spin = spin - ; glutPostRedisplay(); } void mouse(int button, int state, int x, int y) { switch (button) { case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(spinDisplay); break; case GLUT_MIDDLE_BUTTON: if (state == GLUT_DOWN) glutIdleFunc(NULL); break; default: break; } } void reshape(int w, int h) { glViewport(, , (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 0.5, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 'd': day = (day + ) % ; glutPostRedisplay(); break; case 'D': day = (day - ) % ; glutPostRedisplay(); break; case 'y': year = (year + ) % ; glutPostRedisplay(); break; case 'Y': year = (year - ) % ; glutPostRedisplay(); break; : exit(); break; default: break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(, ); glutInitWindowPosition(, ); glutCreateWindow("OpengGL 程序设计--这段代码是我抄的"); init(); //glutDisplayFunc(DrawCircle); glutDisplayFunc(display); glutReshapeFunc(reshape); //glutKeyboardFunc(keyboard); glutMouseFunc(mouse); glutMainLoop(); ; }
效果图:
参考:
https://jingyan.baidu.com/article/eb9f7b6d7621b9869364e807.html
http://blog.csdn.net/Jacketinsysu/article/details/49563139
OpenGL秒安装及显示的更多相关文章
- OpenGL中glVertex、显示列表(glCallList)、顶点数组(Vertex array)、VBO及VAO区别
OpenGL中glVertex.显示列表(glCallList).顶点数组(Vertex array).VBO及VAO区别 1.glVertex 最原始的设置顶点方法,在glBegin和glEnd之间 ...
- Advanced Office Password Recovery安装后显示是英文版的
一些才开始接触Advanced Office Password Recovery(即AOPR)的朋友,在安装Advanced Office Password Recovery的时候可能发现Advanc ...
- 百度编辑器UEditor 点击上传图片选择框会延迟几秒才会显示 反应很慢(转)
转自:http://www.blogxuan.com/php/show/323.html UEditor 编辑器点击上传文件选择框会延迟几秒才会显示,反应很慢,上传图片选择框显示很慢. 1.uedit ...
- OpenGL初学:安装配置与第一个程序
OpenGL初学:安装配置与第一个程序 2014年10月12日 12:37:03 process-z 阅读数:12413 标签: opengl安装教程 更多 个人分类: OpenGL 计算机图形学 ...
- OpenGL(八) 显示列表
OpenGL在即时模式(Immediate Mode)下绘图时,程序中每条语句产生的图形对象被直接送进绘图流水线,在显示终端立即绘制出来.当需要在程序中多次绘制同一个复杂的图像对象时,这种即时模式会消 ...
- InnoSetup 根据选择的安装语言显示不同语言的(协议)License和更新说明
需求 在安装时,选择中文安装,显示中文版协议(License)文件. 在安装时,选择英文安装,显示英文版协议(License)文件. 解决 [Languages] 段中有LicenseFile属性和I ...
- [OpenGL] 斯坦福兔子与显示列表
1.调整桌子的大小. 在OpenGL绘制长方体,能够通过函数: glutSolidCube(Size) 绘制得到的是一个正方体,再利用缩放矩阵使其变成长方体.使得桌子 ...
- linux 下使用opengl的glut库显示和旋转BMP图片
效果图: 这里显示的图和原图有明显的色差,目前猜测是opengl渲染时的颜色表顺序跟BMP文件里的颜色表顺序相反导致. BMP里应该是BGRBGRBRG... ,而opengl渲染时应该是按照RGBR ...
- Web Deploy安装时显示Web Management Service无法启动
在安装显示如题错误,看了日志: IISWMSVC_STARTUP_UNABLE_TO_READ_CERTIFICATE 无法读取带有指纹"3f60e39108a7e4c54f671b75 ...
随机推荐
- Intellj(IDEA)创建java webapp
1. 创建工程 2. 创建Java文件 并且将java文件夹将设置为Sources Root 3. 创建test文件夹,并且在test文件夹下面创建java文件夹 将test下面的java文件夹标记为 ...
- spring-jar包及架构介绍
查看博客: http://www.cnblogs.com/ywlaker/p/6136625.html
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》
Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis> 1.启动 2.创建工程 3.添加源文件 4.添加测 ...
- Laravel 输出最后一条sql
$queries = DB::getQueryLog(); $last_query = end($queries); print_r( $last_query);
- Random 中的种子怎么理解
种子就是生成随机数的根,就是产生随机数的基础.计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数.Java项目中通常是通过Math.random方法和R ...
- sublime 最近用的有点卡
index_files:false,
- Linux ssh服务器配置
配置文件在/etc/sshd_config,注意只有root可rw,其他所有用户权限为---. 配置说明可参考man sshd_config. 如果更改了服务器端口号,并且启用了SELinux,需要执 ...
- C++进阶--不让编译器自动生成类函数
//############################################################################ /* * 不让编译器自动生成类函数 * * ...
- 【mysql】索引优化记录
基础知识 Innodb存储引擎 支持行锁 支持事务: Myisam存储引擎 只支持表锁: 不支持事务: 常见索引列表 独立的列 前缀索引(索引选择性) 多列索引(并不是多个单列索引,索引顺序很重要) ...
- Git revert及其他一些回退操作
放弃本地的代码和本地提交,希望会退到远程分支的某次提交时,使用git reset --hard fa042ce. 本地已提交,但是发现有问题,想要撤销本地的提交,使用git checkout /trs ...