Hello OpenGL——OpenGL在Visual c++6.0安装和配置


1、下载并安装glut库
opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 
Windows环境下的GLUT下载地址:(大小约为150k) 
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2、Windows环境下安装GLUT的步骤:
(1)、解压得下面五个文件
(2)、将glut.h文件拷贝到visual C++下的gl目录
(3)、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(Program Files/Microsoft Visual Studio/VC98/lib”文件夹)。
(4)、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:/Windows/System32)
3、工程文件中配置
(1)、创建一个工程;
(2)、链接OpenGL libraries;
在Visual C++中先单击Project,再单击Settings,再找到Link单击,最后在Object/library modules 的最前面加上opengl32.lib glu32.lib glut.lib glaux.lib gdi32.lib user32.lib advapi32.lib
或者在project -> add to project ->files引入需要的头文件
(3)单击Project -Settings中的C/C++标签,将Preprocessor definitions 中的_CONSOLE改为__WINDOWS。最后单击OK。

(4)、工程的cpp文件中使用时候加上相关的头文件;

(5)、成功编译通过。

4.测试程序

#include <GL/glut.h>
#include <stdlib.h>void background(void)
{//设置背景颜色为黑色glClearColor(0.0,0.0,0.0,0.0);
}void myDisplay(void)
{//buffer设置为颜色可写glClear(GL_COLOR_BUFFER_BIT);//开始画三角形glBegin(GL_TRIANGLES);//设置为光滑明暗模式glShadeModel(GL_SMOOTH);//设置第一个顶点为红色glColor3f(1.0,0.0,0.0);//设置第一个顶点的坐标为(-1.0,-1.0)glVertex2f(-1.0,-1.0);//设置第二个顶点为绿色glColor3f(0.0,1.0,0.0);//设置第二个顶点的坐标为(0.0,-1.0)glVertex2f(0.0,-1.0);//设置第三个顶点为蓝色glColor3f(0.0,0.0,1.0);//设置第三个顶点的坐标为(-0.5,1.0)glVertex2f(-0.5,1.0);//三角形结束glEnd();//强制OpenGL函数在有限时间内运行glFlush();
}void myReshape(GLsizei w,GLsizei h)
{glViewport(0,0,w,h);//设置视口glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTIONglLoadIdentity();//将当前矩阵置换为单位阵if(w <= h)gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w);//定义二维正视投影矩阵elsegluOrtho2D(-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);
}
测试结果:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg源代码简单分析-通用-结构体分析-AVIOContext

参考链接 FFMPEG结构体分析&#xff1a;AVIOContext_雷霄骅的博客-CSDN博客_aviocontext AVIOContext AVIOContext是FFMPEG管理输入输出数据的结构体结构体的定义位于位于avio.h关键的变量如下所示 unsigned char *buffer&#xff1a;缓存开始位置int buffer_size&#xff1…

初闻动态规划

前言 本文以一道常见的算法面试题开篇&#xff0c;引入动态规划的基础概念&#xff0c; 介绍其思考过程。 正文 一、常见的一道算法面试题——上台阶 有一个楼梯总共n个台阶&#xff0c;只能往上走&#xff0c;每次只能上1个、2个台阶&#xff0c;总共有多少种走法。 解决…

FFmpeg源代码简单分析-通用-结构体分析-AVCodec

参考链接 FFMPEG结构体分析&#xff1a;AVCodec_雷霄骅的博客-CSDN博客_avcodec AVCodec AVCodec是存储编解码器信息的结构体结构体的定义位于avcodec.h文件中最主要的几个变量 const char *name&#xff1a;编解码器的名字&#xff0c;比较短const char *long_name&#xff…

SLF4J简介与使用(整合log4j)

SLF4J简介与使用(整合log4j) 一、概念 SLF4J的全称是Simple Logging Facade for Java&#xff0c;即简单日志门面。SLF4J并不是具体的日志框架&#xff0c;而是作为一个简单门面服务于各类日志框架&#xff0c;如java.util.logging, logback和log4j。 SLF4J提供了统一的记录…

multism中ui和uo应该怎么表示_王者荣耀:梦泪直播时谈到体验服大改动,表示装备的改动很关键...

王者荣耀的主播梦泪&#xff0c;大家都很熟了&#xff0c;也是一个很强的主播&#xff0c;他对于王者荣耀的理解&#xff0c;还是非常深刻的&#xff0c;而最近王者荣耀的体验服&#xff0c;进行了大改动&#xff0c;也是改变了很多的东西。对此&#xff0c;网友们也是非常的在…

FFmpeg源代码简单分析-通用-结构体分析-AVStream

参考链接 FFMPEG结构体分析&#xff1a;AVStream_雷霄骅的博客-CSDN博客_avstream AVStream AVStream是是存储每一个视频/音频流信息的结构体结构体的定义位于avformat.h重要参数介绍 int index&#xff1a;标识该视频/音频流AVCodecContext *codec&#xff1a;指向该视频/音…

在Windows下安装JDK的通常步骤

获取安装包 从官网或其他途径下载JDK的Windows版本的安装包&#xff0c;并点击安装。安装向导中无需选择配置项&#xff0c;默认操作即可&#xff0c;除了自定义的JDK安装目录。假设JDK的安装目录为C:\Program Files\Java。 设置环境变量 右击桌面上的计算机&#xff0c;在菜单…

怎么关闭或者卸载ivanti_电脑软件卸载不了怎么办,教您解决电脑软件无法卸载方法技巧...

我们在使用电脑的过程中&#xff0c;肯定会安装各种软件&#xff0c;但是一些软件在使用完之后就不会再使用了&#xff0c;但又无法卸载。下面由小编分享一下电脑安装的软件无法卸载解决方法&#xff0c;如果你在某卸载软件的时候出现无法卸载的情况&#xff0c;不妨通过以下方…

FFmpeg源代码简单分析-通用-结构体分析-AVPacket

参考链接 FFMPEG结构体分析&#xff1a;AVPacket_雷霄骅的博客-CSDN博客_avpacket AVPacket AVPacket是存储压缩编码数据相关信息的结构体结构体的定义位于packet.h重要参数介绍 uint8_t *data&#xff1a;压缩编码的数据。例如对于H.264来说。1个AVPacket的data通常对应一个…

h5支付不能打开支付宝 ios_iOS WKWebview中无法调起支付宝/微信客户端支付问题的解决方法...

这两个的解决思路都是要在下面这个方法中先拦截相应的url&#xff0c;再单独处理- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;支付宝…

解决Github图片加载失败

问题描述 浏览自己Github某仓库的README.md内时&#xff0c;发现文档的图片始终加载不出&#xff0c;打开浏览器后台&#xff0c;冒出一片红&#xff0c;Failed to load resource: net::ERR_CONNECTION_RESET&#xff0c;如下图所示&#xff1a; 问题分析 可能造成这问题的原…

FFmpeg源代码简单分析-通用-结构体分析-AVFrame

参考链接 FFMPEG结构体分析&#xff1a;AVFrame_雷霄骅的博客-CSDN博客 AVFrame AVFrame是包含码流参数较多的结构体结构体的定义位于frame.hAVFrame结构体一般用于存储原始数据&#xff08;即非压缩数据&#xff0c;例如对视频来说是YUV&#xff0c;RGB&#xff0c;对音频来…

python 求子字符串_(6)KMP算法(求子串的位置)______字符串的匹配

问题&#xff1a;已知字符串 B 是字符串 A 的一个子串,问字符串 B 在字符串 A 的第一次出现位置.暴力方法:从 A 字符串 的每个位置开始对字符串 B 进行匹配. 这种方法根据数据的不同 复杂度不同最高可以达到O( m*n ). (m,n分别为两个字符串的长度)KMP算法&#xff1a;我们先来看…

用Python将多张图片合并成一PDF文件

先前条件 需要安装两模块&#xff1a;fpdf、PIL pip install fpdfpip install PIL 放码过来 from fpdf import FPDF from PIL import Image import osdef makePdf(pdfFileName, listPages):cover Image.open(listPages[0])width, height cover.sizepdf FPDF(unit "…

FFmpeg源代码简单分析-通用-结构体分析-关键结构体之间的关系

参考链接 FFMPEG中最关键的结构体之间的关系_雷霄骅的博客-CSDN博客_ffmpeg 结构体关系 最关键的结构体可以分成以下几类&#xff1a; 解协议&#xff08;http,rtsp,rtmp,mms&#xff09; AVIOContext&#xff0c;URLProtocol&#xff0c;URLContext主要存储视音频使用的协…

用Python下载文件

前提条件 需要事先安装requests模块&#xff1a; pip install requests 放码过来 import requestsurl XXX #文件下载来源URL filename #下载到本地后新文件名 r requests.get(url) with open(filename, "wb") as code:code.write(r.content)实战演习 从目标…

distenct oracle_Oracle的distinct关键字

distinct关键字用于从查询的结果集中筛选出唯一值的记录。我们通过示例来介绍distinct关键字的用法。一、生成测试数据用以下SQL创建超女基本信息表(T_GIRL)&#xff0c;插入一些测试数据。create table T_GIRL(id char(4) not null, -- 编号name varchar2(30) not null, -- 姓…

FFmpeg源代码简单分析-通用-常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

参考链接 FFmpeg源代码简单分析&#xff1a;常见结构体的初始化和销毁&#xff08;AVFormatContext&#xff0c;AVFrame等&#xff09;_雷霄骅的博客-CSDN博客 结构体 AVFormatContext&#xff1a;统领全局的基本结构体。主要用于处理封装格式&#xff08;FLV/MKV/RMVB等&…

python中object转为float_object格式怎样无损转换成float64格式

这次给大家带来object格式怎样无损转换成float64格式&#xff0c;object格式无损转换成float64格式的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。在数据处理过程中比如从CSV文件中导入数据data_df pd.read_csv("names.csv")在处理之前一…

FFmpeg源代码简单分析-通用-avio_open2()

参考链接 FFmpeg源代码简单分析&#xff1a;avio_open2()_雷霄骅的博客-CSDN博客_avio_open avio_open2() 该函数用于打开FFmpeg的输入输出文件avio_open2()的声明位于libavformat\avio.h文件中&#xff0c;如下所示。 /*** Create and initialize a AVIOContext for accessi…