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. 能添加图标的label

    能添加图标的label 效果 源码 https://github.com/YouXianMing/UI-Component-Collection 中的 IconEdgeInsetsLabel // / ...

  2. 实习医生风云第一至九季/全集Scrubs迅雷下载

    本季看点:<实习医生风云>一批医学院的学生来到圣心医院开始他们的实习生涯,但是从第一天起就发现这里并不是想象中安详宁静的医学圣地,从医生到护士甚至门卫个个不同寻常.内科实习医生杰迪是个聪明 ...

  3. 实用ExtJS教程100例-011:ExtJS Form 使用JSON数据赋值和取值

    上一节中我们演示了ExtJS Form的异步加载和提交数据,本节中我们将演示如何使用JSON数据为ExtJS Form中的字段赋值和取值. 系列ExtJS教程持续更新中,点击查看>>最新E ...

  4. CircleImageManager——圆形 / 圆角图片的工具类

    这个类可以实现圆角,或者是圆形图片的操作. CircleImageManager.java package com.kale.utils; import android.content.Context ...

  5. JAVA垃圾回收机制概要

    垃圾回收是JAVA中的一个大知识点,也是一个著名知识点,毕竟JAVA号称自己先进性的时候总是会带上垃圾回收.于是,它也成了面试中的常客,面试官动不动的就要你解释下什么是垃圾回收,以及它的原理是什么.当 ...

  6. android studio运行时报错AVD Nexus_5X_API_P is already running解决办法

    运行刚搭建好的Android环境时会报这种错误: AVD Nexus_5X_API_P is already running. If that is not the case, delete the ...

  7. 《UNIX环境高级编程》笔记--环境变量

    ISO C定义了一个函数getenv,可以用其取环境变量值. #include <stdlib.h> char* getenv(const char* name); //返回与name关联 ...

  8. webGl中实现clipplane

    webGl中实现clipplane 参考:调用glClipPlane()函数所执行的裁剪是在视觉坐标中完成的,而不是在裁剪坐标中进行的https://blog.csdn.net/shengwenj/a ...

  9. 文件 File 常见操作 工具 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. 一些非常实用的JSON 教程

    以下内容来自W3school. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 ...