图解VC++ opengl环境配置和几个入门例子
VC6下载
http://blog.csdn.net/bcbobo21cn/article/details/44200205
demo工程和glut库下载
http://pan.baidu.com/s/1pLSpKiZ
一 环境配置
参阅
http://blog.itpub.net/17267437/viewspace-545635/
解压glut库
拷贝glut.h到如下目录;
拷贝图1的两个lib到如下目录;
拷贝图1的两个dll到如下目录(偶是64位系统);
工程设置添加四个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'
......
是因为代码中包含全角字符;寻找发现该全角字符是空格;用替换功能,把全角空格全部替换为半角空格再编译即可;
五 例子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环境配置和几个入门例子相关推荐
- OpenGL环境配置(超全整合版)
网上搜罗各种资料,终于把openGL的环境配置好了,为了让后面的人省事,于是整合出了一个类似于"懒人包"的东西,非常好弄,按照下面的教程来就好了,什么都不缺 一.事前准备 一块主流 ...
- VS2010/VS2012/VS2015下openGL环境配置(转)
按:按照下述博文,三个例子均成功. https://blog.csdn.net/so_geili/article/details/51685005 请仔细阅读每一个字. 为了学习<OpenGL超 ...
- OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】
OpenGL的环境配置是最让初学者头疼的事情了,主要是一开始链接什么glfw.glad,不知道有什么用,什么链接库.包含目录很头大,有一步做错就可能一大堆报错. 本文对LearnOpenGL CN教程 ...
- DirectX9 SDK 下载、安装、VC++开发环境配置、跑通第一个例子
一 可在 http://download.microsoft.com/download/F/1/7/F178BCE4-FA19-428F-BB60-F3DEE1130BFA/DXSDK_Feb10.e ...
- Mac版OpenGL环境配置
前段时间图形学要求在电脑上配置OpenGL环境,但是老师发的资料都是Windows的.CSDN上看了无数个帖子也没配好,最后是看朋友推的一个B站视频配好的. 以下是原链接:[Mac搭建OpenGL开发 ...
- Golang入门,安装与环境配置,简单代码入门
目录 一:安装包下载和环境配置 1.1软件下载和安装 1.2环境变量配置 1.3环境配置验证 二:完成HelloWorld程序 2.1编码 2.2执行 三:开发IDE工具软件安装和配置 3.1下载和安 ...
- vs2010中opengl环境配置
下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ ...
- opengl环境配置
工欲善其事,必先利其器.学习opengl必须要先搭建好开发环境,首先就从搭建环境开始. 查阅了不少资料,发现glfw是一个不错的选择,跨平台,方便后续扩展,而且也支持原生的api.所以我们选用glfw ...
- DEV C++的OPENGL环境配置
DEV C++作为一个轻量级的开发工具,相信会有不少朋友会选用它.但是利用它学习OPENGL,摆在第一位置的就是OPENGL函数库的配置. 提到配置OPENGL的环境,可谓让人头大,查阅了无数的网站和 ...
最新文章
- java基础线程_Java基础之多线程没那么复杂!
- 德州仪器Q2净利7.79亿美元 营收32.7亿美元
- #20145238荆玉茗《网络对抗》-逆向及Bof进阶实践
- linux与开发板串口通信
- 2015 UESTC Winter Training #10【Northeastern Europe 2009】
- 事务对性能影响_开启英特尔事务扩展技术(TSX),即可提升intel CPU 近40%性能
- [Azure] Notification Hubs注册模式
- qt如何创建桌面快捷方式_如何用Qt Python创建简单的桌面条形码应用
- Windows USB驱动开发点滴积累备忘录
- 转 Hystrix超时实现机制
- iPhone UI 元素大小
- 阿里企业邮箱使用第三方客户端同步邮件的坑
- mysql删除表数据及其关联数据_MYSQL中delete删除多表数据与删除关联数据
- C 语言实现 - 判断元音/辅音
- LINQ查询————八大基本子句
- 2021年全国大学生电子设计大赛(一)赛题解析与预测
- 你对国外问卷调查有多少了解?
- Android发展 四大组件简介 SDK目录结构 工程目录结构
- css 设置字间距、字母间距和汉子间距
- Linux 心路历程
热门文章
- JS中的 that = this
- SpringMVC自动将请求参数和入参对象的属性进行一一绑定;要求请求参数的名字和javaBean入参的对象里面的属性名是一样的||员工的增删改查案例
- tomcat屏蔽ip
- leetcode C++ 48. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。
- C# 学习笔记(9)线程
- opencv中使用K-近邻分类算法KNN
- 3.1.3 训练/开发/测试集的问题以及注意事项
- 2019牛客第四场I题 string
- ig信息增益 java_文本分类综述
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)