VC6下载

http://blog.csdn.net/bcbobo21cn/article/details/44200205

demoproject和glut库下载

http://pan.baidu.com/s/1pLSpKiZ

一 环境配置

參阅

http://blog.itpub.net/17267437/viewspace-545635/

解压glut库

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

拷贝glut.h到例如以下文件夹;

拷贝图1的两个lib到例如以下文件夹。

拷贝图1的两个dll到例如以下文件夹(偶是64位系统)。

project设置加入四个lib

二样例1

#include <GL/glut.h>

#include <math.h>



const int n = 200;

const GLfloat R = 0.5f;

const GLfloat Pi = 3.1415926536f;



void myDisplay(void)

{

int i;

// 画一个绿色正方形

    glClear(GL_COLOR_BUFFER_BIT);

    glColor3f(0.0f,1.0f,0.0f);

    glRectf(-0.5f, 0.4f, 0.0f, 0.9f); //画一个绿色的正方形

    //glFlush();



//glClearColor(0.0,0.0,0.0,0.0);

     //glClear(GL_COLOR_BUFFER_BIT);

     glColor4f(1.0,0.0,0.0,1.0);     // set the quad color

     glBegin(GL_QUADS);

         glVertex3f(-0.2,-0.2,0.0);

         glVertex3f(0.2,-0.2,0.0);

         glVertex3f(0.2,0.2,0.0);

         glVertex3f(-0.2,0.2,0.0);

    glEnd();



glColor4f(1.0,0.0,0.0,1.0);   // set the point color

      glPointSize(10);

      glBegin(GL_POINTS);

          glVertex3f(-0.5,-0.5,0.0);

          glVertex3f(0.5,-0.5,0.0);

          glVertex3f(0.5,0.5,0.0);

          glVertex3f(-0.5,0.5,0.0);

     glEnd();



glColor4f(1.0,0.0,0.0,1.0); // set the line color

      glLineWidth(5);

      glBegin(GL_LINES);

            glVertex3f(-0.5,-0.5,0.0);

            glVertex3f(0.5,-0.5,0.0);

            glVertex3f(0.5,0.5,0.0);

            glVertex3f(-0.5,0.5,0.0);

      glEnd();



 /*glBegin(GL_POLYGON);

for(i=0; i<n; ++i)

glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));

glEnd();*/



    glFlush();

}



int main(int argc, char *argv[])

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

    glutInitWindowPosition(100, 0);

    glutInitWindowSize(1024, 768);

    glutCreateWindow("OpenGL基本绘制");

    glutDisplayFunc(&myDisplay);

    glutMainLoop();

    return 0;

}

网上说要改下图的_CONSOLE,我没改也能在开发环境下执行。

三 样例2

#include <GL/glut.h>



void myDisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT);

glRectf(-0.5f, -0.5f, 0.5f, 0.5f);

glFlush();

}



int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

glutInitWindowPosition(100, 100);

glutInitWindowSize(400, 400);

glutCreateWindow("第一个OpenGL程序");

glutDisplayFunc(&myDisplay);

glutMainLoop();

return 0;

}

四 样例3

#include <GL/glut.h>



//Called to draw scene

void RenderSence(void)

{

//Clear the window with current clearing color

glClear(GL_COLOR_BUFFER_BIT);

//Flush drawing commands

glFlush();

}

//Set up the rendering state

void SetupRC(void)

{

glClearColor(0.0f,0.0f,1.0f,1.0f);      //此时背景色为蓝色

}



int main(int argc, char *argv[])

{



//glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_SINGLE|GLUT_RGB);

glutCreateWindow("Simple");        //窗体名为“Simple”

glutDisplayFunc(RenderSence);

SetupRC();

glutMainLoop();



return 0;

}

编译,出现一堆下述错误;

demo4.cpp

y:\dddd10\vc6opengldemo\demo4\demo4.cpp(5) : error C2018: unknown character '0xa1'

y:\dddd10\vc6opengldemo\demo4\demo4.cpp(5) : error C2018: unknown character '0xa1'

y:\dddd10\vc6opengldemo\demo4\demo4.cpp(10) : error C2018: unknown character '0xa1'

......

是由于代码中包括全角字符;寻找发现该全角字符是空格;用替换功能,把全角空格所有替换为半角空格再编译就可以;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

五 样例4

#include <GL/glut.h> 



void background(void)

{

glClearColor(0.0,0.0,0.0,0.0);//设置背景颜色为黑色

}



void myDisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT);//buffer设置为颜色可写



 glBegin(GL_TRIANGLES);//開始画三角形

 glShadeModel(GL_SMOOTH);//设置为光滑明暗模式



 glColor3f(1.0,0.0,0.0);//设置第一个顶点为红色

 glVertex2f(-1.0,-1.0);//设置第一个顶点的坐标为(-1.0,-1.0)



 glColor3f(0.0,1.0,0.0);//设置第二个顶点为绿色

 glVertex2f(0.0,-1.0);//设置第二个顶点的坐标为(0.0,-1.0)



 glColor3f(0.0,0.0,1.0);//设置第三个顶点为蓝色

 glVertex2f(-0.5,1.0);//设置第三个顶点的坐标为(-0.5。1.0)

 glEnd();//三角形结束



 glFlush();//强制OpenGL函数在有限时间内执行

}



void myReshape(GLsizei w,GLsizei h)

{

 glViewport(0,0,w,h);//设置视口



 glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTION

 glLoadIdentity();//将当前矩阵置换为单位阵



 if(w <= h)

  gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w);//定义二维正视投影矩阵

 else

  gluOrtho2D(-1.0,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5);

  glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW

}



int main(int argc,char ** argv)

{

 /*初始化*/

 glutInit(&argc,argv);

 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

 glutInitWindowSize(400,400);

 glutInitWindowPosition(200,200);



 /*创建窗体*/

 glutCreateWindow("Triangle");



 /*绘制与显示*/

 background();

 glutReshapeFunc(myReshape);

 glutDisplayFunc(myDisplay);



 glutMainLoop();

 return(0);

}

六 opengl资源链接

http://www.cnblogs.com/phinecos/category/90224.html

基于MFC的opengl编程

图解VC++ opengl环境配置和几个入门样例的更多相关文章

  1. Spring Boot入门样例-001-Java和Maven安装配置

    Spring Boot入门样例-001-Java和Maven安装配置 本文说明Java和Maven在windows下的安装和配置 前言 本Spring Boot入门样例准备工作参考: Spring B ...

  2. OpenGL: 环境配置和图元的绘制

    前言 距离上一篇博客已经过去一个半月了,这段时间过得确实充实,虽然一大段时间泡在图书馆复习,但至少也能学到点东西.跨年晚和元旦一整天,全身心投入图形学小课设的编程,终于实现了老师要求的所有功能,回想起 ...

  3. VS2010/VS2012/VS2015下openGL环境配置(转)

    按:按照下述博文,三个例子均成功. https://blog.csdn.net/so_geili/article/details/51685005 请仔细阅读每一个字. 为了学习<OpenGL超 ...

  4. 64 计算机图形学入门(1)——OpenGL环境配置与图形流水线(图像管线)

    0 引言 最近想学一下计算机图形学方面的知识,原因如下.目前本人接触了数字图像处理(opencv)以及点云处理(PCL)方面的知识,对从图像和点云中提取特征信息,并将特征转化为底层/中层语义信息有了一 ...

  5. 关于MFC OpenGL环境配置的一点总结

    复制include时要小心..看vs给你load哪一个..名字一样..东西可不一定一样哦 http://www.cppblog.com/wicbnu/archive/2010/09/30/128123 ...

  6. zzw原创_ipv6下环境配置防火墙及FTP处理一例

    缘由:公司这段时间要将原IPV4地址切换到IPV6,在环境配置的过程中,碰到一坑,平时不太注意的问题,在IPV6下却放大了 实现目标:在IPV6下,机器A可以FTP到机器B,可以传输.下载文件 A机器 ...

  7. 【OpenGL 学习笔记01】HelloWorld演示样例

    <<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比較踏实,哈哈. 我的主题是,好记性不如烂笔头. ========== ...

  8. Swift - 自动布局库SnapKit的使用详解1(配置、使用方法、样例)

    为了适应各种屏幕尺寸,iOS 6后引入了自动布局(Auto Layout)的概念,通过使用各种 Constraint(约束)来实现页面自适应弹性布局. 在 StoryBoard 中使用约束实现自动布局 ...

  9. Mac CLion下OpenGL环境配置

    1. 配置glew和glfw 终端下运行下面两句,安装完后在/usr/local/Cellar/下可以找到对应的目录. brew install glew brew install glfw3 效果如 ...

随机推荐

  1. git push origin master:master

    $git push origin master:master (在local repository中找到名字为master的branch,使用它去更新remote repository下名字为mast ...

  2. 关于chrome插件编写的小结

    一个插件的大致目录结构如下: 其中manifest文件最为重要,它定义/指明插件应用的相关信息(权限.版本.功能说明等),点此查看Manifest的详情>>   这里有一篇chrome官方 ...

  3. 用开源项目ExpandableTextView打造可以下拉扩展的TextView

    这次还是用开源项目来实现效果,我个人觉得上面的这个效果还是很赞的.于是就记录下如何实现这个效果,其实相当简单.这就是开源项目写的好的例子,整个开源项目的代码十分清晰,逻辑和代码结构都很棒,接入自己的工 ...

  4. attrs.xml中declare-styleable 详解(用于自定义控件的属性)

    1. 框架定义: <declare-styleable name = "名称"> <attr name = "……" format = &qu ...

  5. [国际A类会议] 2018最最最顶级的人工智能国际峰会汇总!CCF推荐!

    copy from :  http://www.sohu.com/a/201860341_99975651 如果今年的辉煌我们没有赶上,那么我们可以提前为明年的大会做准备.现在,AI脑力波小编就为大家 ...

  6. H2:开源内存数据库引擎

    本资源由 伯乐在线 - 刘立华 整理 H2是一个开源的内存数据库.Java编写.快速.小巧(1.5MB jar包)还提供了Web控制台管理数据库内容. 主要功能 非常快速的数据库引擎. 开源. Jav ...

  7. 会动的文字Marquee应用(转)

    想要做个滚动公告,看了网上的教程,无一不是很恐怖的场频啊java语言编制的JS,或者就是各种复杂,无意中发现了Marquee这东西,用了一下,很简单,只需两行代码,即可以实现很好的效果,特此分享一下. ...

  8. 【Error】centos7 minimal connect: Network is unreachable

    参考链接:http://www.centoscn.com/CentosBug/osbug/2015/1208/6500.html 由于centos7 和之前的版本差异比较大,之前的一些命令不能完全使用 ...

  9. RecyclerView的使用(2)之多Item布局的载入

    原创文章,转载请注明 http://blog.csdn.net/leejizhou/article/details/50708349 李济洲的博客 上一篇介绍的了RecyclerView的基础使用ht ...

  10. HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...