图解VC++ opengl环境配置和几个入门样例

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" >

拷贝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" >

五 样例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编程

时间: 2024-10-01 02:57:46

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

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

Spring Boot入门样例-001-Java和Maven安装配置 本文说明Java和Maven在windows下的安装和配置 前言 本Spring Boot入门样例准备工作参考: Spring Boot入门样例-001-Java和Maven安装配置 Spring Boot入门样例-003-idea 安装配置和插件 Spring Boot入门样例-005-如何运行 1. 下载 下载地址:https://www.oracle.com/technetwork/java/javase/downloa

8.PMAC上位机-VC编程环境配置

前面讲的知识都是在PE-WIN32中操作的,都是针对PMAC下位机编程的,现在开始讲解PMAC上位机--PC端如何与PMAC通信:给PMAC发送控制信号及处理PMAC的中断响应.本文先说PMAC VC编程的环境配置. 1.文件夹结构 PMAC PC编程必须安装PComm32,安装完文件夹结构如下: Pmactest.exe用于在PAMC按完成后测试当前安装是否成功,PmacTest是该程序的源码 PCOMM32PRO.HLP是PComm32的编程帮助手册 VCTest和VBTest文件夹是上位机

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

复制include时要小心..看vs给你load哪一个..名字一样..东西可不一定一样哦 http://www.cppblog.com/wicbnu/archive/2010/09/30/128123.html 这篇文章讲的opengl的配置哪些电脑本来就有..哪些电脑原来没有.. 我们在做工程的时候..要区分include的路径(文件夹名字)的大小写 区分include的file的文件名的大小写,以及区分后缀的大小写.. 因为这是字符串匹配,区别和不区别大小写差距很大..不过目前vs的这个逻辑

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

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比較踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

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

为了适应各种屏幕尺寸,iOS 6后引入了自动布局(Auto Layout)的概念,通过使用各种 Constraint(约束)来实现页面自适应弹性布局. 在 StoryBoard 中使用约束实现自动布局很方便,但如果用纯代码来设置约束就很麻烦了.这里向大家推荐一个好用的第三方布局库:SnapKit(其前身是 Masonry,一个OC版的布局库) 1.SnapKit介绍 SnapKit是一个优秀的第三方自适应布局库,它可以让iOS.OS X应用更简单地实现自动布局(Auto Layout).GtiH

【计算机图形学】--OpenGl环境配置

一.配置环境 选择编程环境为Visual studio 2010 Visual studio 2010 中已经提供了对opengl库的支持,所以主要需要配置的是GLUT. GLUT是一个与窗口系统无关的工具包. 当写opengl程序时,可以通过GLUT实现简单的窗口的创建等操作,免去了学习特定OS下GUI库的过程. 二.配置过程 第一步:下载GLUT工具包 po写的刚开始学习,是在学校老师的课程主页下载的. 现上传至百度网盘:有需自取 [http://pan.baidu.com/s/1o8mDh

OpenGL学习之旅01—Xcode+OpenGL环境配置

1.下载和安装HomeBrew 打开terminal,输入下面的命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" x 1 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quo

Hibernate+Junit-史上最详细图解教程-从环境配置到入门

工程目录结构在最后 Eclipse版本:Mars 4.5.2 数据库:MySQL+navicat 1.需要Hibernate Tools for Eclipse plugins 在JBoss Tools下载与自己Eclipse版本相对应的Tools.用于方便的构建hibernate工程. 选择好版本后,会出现这样一个界面: 这时直接把链接(红圈)拖进Eclipse就行了. 然后获取资源后,点击finish,会进行在线安装: 中途可能会弹出警告,忽略就是,装完会重启: 重启后会弹出是否加入用户体验

Spring Boot? 配置文件详解:自定义属性、随机数、多环境配置等

自定义属性与加载 我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义: application-dev.yml com.didispace.blog: name: 程序猿DD title: Spring Boot教程 desc: ${com.didispace.blog.name}正在努力写<${com.didispace.blog.title}> # 随机字符串 value: ${random.value} # 随机int number: ${