快毕业了,狂补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秒安装及显示的更多相关文章

  1. OpenGL中glVertex、显示列表(glCallList)、顶点数组(Vertex array)、VBO及VAO区别

    OpenGL中glVertex.显示列表(glCallList).顶点数组(Vertex array).VBO及VAO区别 1.glVertex 最原始的设置顶点方法,在glBegin和glEnd之间 ...

  2. Advanced Office Password Recovery安装后显示是英文版的

    一些才开始接触Advanced Office Password Recovery(即AOPR)的朋友,在安装Advanced Office Password Recovery的时候可能发现Advanc ...

  3. 百度编辑器UEditor 点击上传图片选择框会延迟几秒才会显示 反应很慢(转)

    转自:http://www.blogxuan.com/php/show/323.html UEditor 编辑器点击上传文件选择框会延迟几秒才会显示,反应很慢,上传图片选择框显示很慢. 1.uedit ...

  4. OpenGL初学:安装配置与第一个程序

    OpenGL初学:安装配置与第一个程序 2014年10月12日 12:37:03 process-z 阅读数:12413 标签: opengl安装教程 更多 个人分类: OpenGL   计算机图形学 ...

  5. OpenGL(八) 显示列表

    OpenGL在即时模式(Immediate Mode)下绘图时,程序中每条语句产生的图形对象被直接送进绘图流水线,在显示终端立即绘制出来.当需要在程序中多次绘制同一个复杂的图像对象时,这种即时模式会消 ...

  6. InnoSetup 根据选择的安装语言显示不同语言的(协议)License和更新说明

    需求 在安装时,选择中文安装,显示中文版协议(License)文件. 在安装时,选择英文安装,显示英文版协议(License)文件. 解决 [Languages] 段中有LicenseFile属性和I ...

  7. [OpenGL] 斯坦福兔子与显示列表

    1.调整桌子的大小.         在OpenGL绘制长方体,能够通过函数: glutSolidCube(Size)          绘制得到的是一个正方体,再利用缩放矩阵使其变成长方体.使得桌子 ...

  8. linux 下使用opengl的glut库显示和旋转BMP图片

    效果图: 这里显示的图和原图有明显的色差,目前猜测是opengl渲染时的颜色表顺序跟BMP文件里的颜色表顺序相反导致. BMP里应该是BGRBGRBRG... ,而opengl渲染时应该是按照RGBR ...

  9. Web Deploy安装时显示Web Management Service无法启动

      在安装显示如题错误,看了日志: IISWMSVC_STARTUP_UNABLE_TO_READ_CERTIFICATE 无法读取带有指纹"3f60e39108a7e4c54f671b75 ...

随机推荐

  1. 读DataSnap源代码(六)

    具体分析一下DataSanp App与Rest, WebBroker App的不同,先看TDSHTTPService. **************************************** ...

  2. subversion与TortoiseSVN的使用

    Subversion是一个自由开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可 ...

  3. msp430学习笔记-TA

    定时器,CCR2,CCR1三者共用一个中断向量 定时器A是一个16位的定时/计数器.它有3个捕获/比较寄存器:能支持多个时序控制.多个捕获/比较功能和多个PWM输出:有广泛的中断功能,中断可由计数器溢 ...

  4. IK分词器的使用

    1.下载 根据自己的版本进行下载 https://github.com/medcl/elasticsearch-analysis-ik/releases wget https://github.com ...

  5. Django--django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE

    Django序列化时遇到错误: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESP ...

  6. RTB业务知识之1-原生广告

    一.背景 Native Advertising (Native Ads), 又称为原生广告, 是2013全球媒体界爆红的关键词,从2012年年底,就有人开始提了这个名词,接着到处都可以看到这个名词,再 ...

  7. [蓝桥杯]ALGO-87.算法训练_字串统计

    问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的. 输入格式 第一行一个 ...

  8. 使用R语言-计算均值,方差等

    R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [ ...

  9. Ubuntu 14.10 下安装伪分布式hbase 0.99.0

    HBase 安装分为:单击模式,伪分布式,完全分布式,在单机模式中,HBase使用本地文件系统而不是HDFS ,所有的服务和zooKeeper都运作在一个JVM中.本文是安装的伪分布式. 安装步骤如下 ...

  10. 以zookeeper为注册中心搭建spring cloud环境

    在spring cloud体系中,有多种手段实现注册中心,本例中采用zookeeper作为注册中心的角色.服务提供者向zookeeper注册,服务消费者从zookeeper中发现服务提供者的相关信息, ...