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. WordPress主题开发:WP_Query使用分页实例

    functions.php加入 <?php function lingfeng_custom_pagenavi( $custom_query,$range = 4 ) { global $pag ...

  2. python测试开发django-31.admin后台一对多操作ForeignKey

    前言 平常的网页上有很多一对多的场景,比如填写银行卡信息的时候,会从银行列表下拉框选择对应的银行信息.一般会建两张表,一张表放银行的信息,一张表放银行卡信息. 每个银行可以对应多个银行卡,每个银行卡只 ...

  3. 快速排序原理及Java实现

    1.基本思想: 快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的.快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较 ...

  4. MySql、Oracle、MSSQL中的字符串的拼接

    字符串的拼接 1,Mysql 在Java.C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"."a"+"b ...

  5. 实习医生格蕾第一季/全集Grey’s Anatomy迅雷下载

    第一季 Grey's Anatomy Season 1 (2005)看点:欢迎来到格雷斯医院,哈佛医学院西区最艰苦的外科住院医实习程序,医务新人最残酷的训练场.Meredith.Izzie和Chris ...

  6. ExtJS 4.2 教程-02:bootstrap.js 工作方式

    转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-2-bootstrap-js ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4.2 ...

  7. c#录音和放音,超简单!不用DirectX

    最近在做android与C#录音并互相通信的小东西.但是卡在C#录音这儿了.找了好久,说的都是DirectX,可是我总是安装不上,这才找到了这个简单的录音方法.当然,如果你想要录得好并且处理音频,那还 ...

  8. .Net Core中文编码问题整理

    1..Net Core Console控制台程序 在.Net Core中默认System.Text中不支持CodePagesEncodingProvider.Instance, System.Text ...

  9. LCA算法总结

    LCA问题(Least Common Ancestors,最近公共祖先问题),是指给定一棵有根树T,给出若干个查询LCA(u, v)(通常查询数量较大),每次求树T中两个顶点u和v的最近公共祖先,即找 ...

  10. 【BZOJ】【3673】可持久化并查集 & 【3674】可持久化并查集加强版

    可持久化并查集 Orz hzwer & zyf 呃学习了一下可持久化并查集的姿势……其实并查集就是一个fa数组(可能还要带一个size或rank数组),那么我们对并查集可持久化其实就是实现一个 ...