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. Mac上 python 找不到 yaml模块

    (1)  yaml http://codyaray.com/2011/12/pyyaml-using-easy_install-on-mac-os-x-lion 1.报错 ImportError: N ...

  2. bat与jscript开发工具时遇到的一些问题

    之前使得bat调用luac进行编译时,会弹出一个"黑色的界面",闪烁一下,感觉不太好.而脚本vbs或者jscript调用bat是可以利用Run方法,将其第二个参数设置为0便可以隐藏 ...

  3. docker 查看容器的网络连接

    #! /bin/bash echo $1 PID=$(docker inspect -f '{{.State.Pid}}' $1) nsenter -t $PID -n netstat |grep E ...

  4. C#与Java 的区别

    相同点:都是面向对象编程的语言,都能够实现面向对象的(封装,继承,多态)思想 不同点:1.   c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用impo ...

  5. java常见反编译工具

    1.Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins ...

  6. [转]MongoDB基本使用

    转自 : http://www.cnblogs.com/TankMa/archive/2011/06/08/2074947.html 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可 ...

  7. linux 比较两个文件夹不同 (diff命令, md5列表)

    比较文件夹diff,可以直接使用diff命令 [root@~]# diff -urNa dir1 dir2 -a Treat all files as text and compare them li ...

  8. Asp.net WebAPI Ioc

    网上关于webapi Ioc 的东西很多,如http://efmvc.codeplex.com/SourceControl/latest#MyFinance.Web/Global.asax.cs 这是 ...

  9. js中document.write的那点事

    document.write()方法可以用在两个方面:页面载入过程中用实时脚本创建页面内容,以及用延时脚本创建本窗口或新窗口的内容.该方法需要一个字符串参数,它是写到窗口或框架中的HTML内容.这些字 ...

  10. Isilon上数据是如何存放的?

    OneFS的文件系统的block size是8KB.这是OneFS上最小的数据存储单位了,比8KB小的文件都要占掉8KB大小的空间.连续的8KB的block会被用来存储文件的数据,但最多不会超过16个 ...