- 博客(32)
- 资源 (23)
- 收藏
- 关注
转载 OpenGL的回调函数
<br />void glutDisplayFunc(void (*func)(void));<br /><br />注册当前窗口的显示回调函数<br /><br />参数:<br />func:形为void func()的函数,完成具体的绘制操作<br /><br />这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态中恢复,或者由于调用glutPostRedisplay()函数要求GLUT更新时,执行func参数指定的函数.<br /><br /><br />
2010-06-30 14:09:00 5879
转载 OpenGL库函数列表
<br />OpenGl核心函数库 glAccum 操作累加缓冲区<br />glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形<br />glAlphaFunc允许设置alpha检测功能<br />glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中<br />glArrayElement 定义一个被用于顶点渲染的数组成分<br />glBegin,glEnd 定义一个或一组原始的顶点<br />glBindTexture 允许建立一个绑定
2010-06-30 09:01:00 1132
转载 OPENGL函数说明
<br /><br />GLUT函数说明<br />2007-12-30 13:35<br />一、初始化<br />void glutInit(int* argc,char** argv)<br />这个函数用来初始化GLUT库。对应main函数的形式应是:int main(int argc,char* argv[]); <br />这个函数从main函数获取其两个参数。<br />void glutInitWindowSize(int width,int height);<br /> void g
2010-06-30 08:54:00 990
转载 关于opengl的相关函数库
<br />OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。从图1可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。下面逐一对这些库进行详细介绍。<br />1. OpenGL核心库<br />核心库包含有115个
2010-06-30 08:52:00 734
原创 VS2005+OPENGL
<br />1.选择编译环境,选择VS2005作为学习OPENGL的环境;<br />2.配置OPENGL:<br />项目 -->选择属性 C/C++-->preprocessor-->preprocessor definition添加GLUT_BUILDING_LIB,中间用分号隔开,<br />然后点击linker-->input--> additional dependencies添加glut32.lib,Opengl32.lib,Glu32.lib<br />3.安装glut工具包:<br />G
2010-06-30 08:50:00 1198
转载 opengl常见问题
<br />01.相机如何在OpenGL中工作?<br />02.我怎样才可以移动我的视点, 或者是相机,在我的场景中?<br />03.我的相机该去哪, 模型视点矩阵还是投射矩阵?<br />04.我该怎么执行一个缩放操作?<br />05.给出当前模型视点矩阵,我怎么才可以确定相机的物体空间位置?<br />06.我怎样才可以使照相机在我的场景中围绕一个点转?<br />07.如何自动计算一个观察点可以显示全部的场景?(我知道边界球体和向上分量(bounding sphere
2010-06-29 08:37:00 2445
原创 fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include
<br /><br />这种情况本质上就是对windows.h头文件重复引用,解决的办法,如果能不引用此头文件当然就不要引用,如果非得引用,或者是引用其他头文件导致的间接引用windows.h,那么不要在stdafx.h文件里面引用,一般可以解决。<br />或者可使用如下代码:<br />所以使用如下代码:<br />#ifdef _WINDOWS_<br />#undef _WINDOWS_<br />#endif<br />或者#ifndef #define #endif<br />如果还不行,就换一
2010-06-28 11:20:00 3023 1
原创 HTML Help Workshop
Mircosoft出的编译HTML帮助文件的必需的编译器……收藏的资料太多了,不善于整理,收藏回来的知识始终不是自己的,也是经过两三遍的整理以后,才能更牢固的记住。下面简要说一下HTML Help Workshop的用法,主要是满足自己制作电子书的流程,能做出一本书来,想要看时看得上就已经达到目标了,至于html这一块我是菜鸟,即使网上有几个HTML Help Workshop的教程,看了几遍还是不懂,只能凭着程序上的直觉去修修补补,哈!闲话不说,直奔主题了:首先打开HTML Help Worksh
2010-06-24 16:51:00 7818 1
原创 Opengles之glRotatef()旋转方向判断
<br />在使用glRotatef()的时候想了很久旋转方向问题,因为 glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z)给定旋转角度和坐标轴,还有个方向要确定,而具体的法则就是右手法则,即将张开右手掌,朝上,大拇指指向向量方向,然后四手指往里握成拳,四手指旋转的方向即旋转方向。当给定角度为负数时,旋转的方向当然与手指旋转的方向相反了。
2010-06-23 16:03:00 2726 1
原创 3DS 文件格式
3DS 文件格式 1、读取规则 3ds文件的读取规则如下:字节:直接读取;字:先读低位字节,后读高位字节,如ed 3c读出后的字为3c ed;双字:先读低位字,后读高位字,如ed 3c 25 43读出后的双字为43 25 3c ed;浮点数:直接读取四个字节。 2、CHUNK chunk是3ds文件的基本构成单位。每一个chunk包括一个头和一个主体。chunk是相互嵌套的,这就决定了你必须以递归的方式读取它们。chunk的头又由两部分组成:ID长一个字,chunk的长度(以字节为单位,包括头)
2010-06-23 08:47:00 5951
转载 3D Studio File Format Information
<br /><br />Index<br />=====<br /> <br />1. Fast reference : The chunk tree<br />----------------------------------<br />This will help you to find rapidly a chunk number and its description.<br /> <br />2. A chunk - What's that ?<br />--------------------
2010-06-22 08:48:00 1352
原创 opengl-3.7源码的编译
<br /> 在opengl官网找到了source code,但opengl官方没有提供在win下编译的dll供我们调用,这两天一直在找编译opengl的方法,但未果。只能先用着好心人提供的编译好的dll和lib。
2010-06-18 16:52:00 1356
原创 奇偶校验
<br />1、奇偶校验位于数据位之后,占1位,用于表示串口通信中的校验方式。该位有用户根据需要决定,有奇校验,偶校验,无校验三种。一般都采用无奇偶校验的方式<br />2、所谓奇校验,就是判断发送方的数据位中1的个数是否是奇数。选择奇校验时,首先将数据位的各位进行“异或”操作,然后将结果与1相“异或”,得到的结果就是奇校验位的值。<br />说白了,奇校验就是确保发送的数据位中1的个数为奇数,如果数据位中1的个数是偶数,那就给校验位赋值1,如果数据位中1的个数是奇数,那就给校验位赋值0.这样就确保发送的数
2010-06-13 10:13:00 8245
转载 用Windows API 编写串口通讯程序
<br /><br />最近在做一个PC机上和ARM机串口通讯的程序。<br /> 实际上,我并没有在VC上编写过串口程序。记得大一下学期的课程实践上倒是在DOS环境下做个简单的串口通讯,可是就是因为太简单了,而且是DOS那种独占式的进程,所以现在要搬到VC和MFC界面应用程序环境中,难度还是有的,我一时没有头绪。<br /> 我首先当然想到用ActiveX控件了。曾听说过Microsoft曾做过一个ActiveX控件,用来简化在MFC中进行的串口编程。找了点资料,又去图书馆找了本书,试了两天,
2010-06-13 10:05:00 11427 5
转载 OpenGL开发包介绍
<br /> 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式: <库前缀><根命令><可选的参数个数><可选的参数类型> 库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库,从函数名后面中还可以看出需要多少个参数以及参数的类型。I代表int型,f代表float型,d代表double型,u代表无符号整型
2010-06-11 09:47:00 1012
转载 学OpenGL的一些好的网站
<br />好的资源太多,自己懂的太少,而今迈步从头越!!fighting......<br />一些OpenGL资源链接<br /><br />这是前几天自己简单整理的几个链接,希望对大家有用<br />顺便问一下http://www.spacesimulator.net 这个网站的教程有一部分是收费的,大家如果知道那里可以看到免费的告我一声,谢谢!<br />如果大家有关于step-by-step用OpenGL教你制作游戏引擎的也告我一下,再次感谢! <br /><br />1. OpenGL、DX
2010-06-11 09:45:00 903
转载 OPENGL的显示列表
(一)简介 所谓显示列表就是一组预选存储起来的留待以后调用的函数语句。调用此显示列表时就按次序执行其中函数。以前所有的函数调用可以称之为立即方式(Immediate mode),现在我们将介绍显示列表方式(Display list)。 显示列表可以优化程序运行性能。它被设计成命令的高速缓存,而不是动态的数据库缓存。一旦建立列表,删除前,则不能被修改,否则会带来系统效率的降低。 显示列表主要目的就是提高运行效率。例如任何一个几何变换的函数处于显示列表中时,系统只保留最后的变换矩阵,这样调用时,工作量比现由函数
2010-06-11 09:25:00 2001 1
转载 Qt 2D绘图 渐变填充
<br /><br />声明:本文原创于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。<br />在qt中提供了三种渐变方式,分别是线性渐变,圆形渐变和圆锥渐变。如果能熟练应用它们,就能设计出炫目的填充效果。<br /><br />线性渐变:<br />1.更改函数如下:<br />void Dialog::paintEvent(QPaintEvent *)<br />{<br /> QPainter painter(this);<br
2010-06-10 14:44:00 1867
转载 OpenGL中的glLoadIdentity、glTranslatef、glRotatef原理
<br /><br />关于这几个函数的文章比比皆是,这是OpenGL的入门函数,但我想我讲的将不同于目前网上的文章。<br />OpenGL中的坐标用齐次坐标表示,即(x,y,z)表示成(x',y',z',h),其中x=x'/h; y=y'/h; z=z'/h. 通常h取1. 比如空间中的点(2,3,4),在OpenGL中将表示成(2,3,4,1). 齐次坐标表示方式适合于矩阵运算,也很方便地表示了无穷远的点,比如(1,0,0,0)就表示x轴上无穷远的点,因为1/0是无穷大,这里约定0 /0=0.<br
2010-06-10 09:07:00 996
转载 OpenGL基础知识
<br />OpenGL是个大的状态机。我们就是通过改变它的状态来实现场景的渲染的。<br />1.最基本的矩阵变换:<br /> 模型变换:移动和变换场景中的模型;<br /> 投影变换 :对视见空间进行裁剪和扭曲;<br /> 视角变换: 对最终输出进行缩放。<br />矩阵变换<br /> 通过前三章的学习,我们知道了如何使用OpenGL在3D空间中绘制基本图元,并把使用图元组成模型。然而,在我们绘制完一个物体或一个场景之后,我们总希望从多个角度观察这个物体,或者在场景中走动
2010-06-10 09:05:00 942
转载 引用 OpenGL函数库
1.OpenGL核心库 核心库包含有115个函数,函数名的前缀为gl。 这部分函数用于常规的、核心的图形处理。此函数由gl.dll来负责解释执行。由于许多函数可以接收不同数以下几类。据类型的参数,因此派生出来的函数原形多达300多个。 核心库中的函数主要可以分为以下几类函数: (1)绘制基本几何图元的函数。如绘制图元的函数glBegain()、glEnd()、glNormal*()、glVertex*()。 (2)矩阵操作、几何变换和投影变换的函数。如矩阵入栈函数glPushMatrix()
2010-06-10 08:59:00 784
原创 VC中创建DLL动态连接库的方法
1.创建一个Win32 Dynamic-link library工程dll,在向导中选择【A DLL that export some symbols】(实例性质)。默认的代码如下://dll.h #ifdef DLL_EXPORTS //DLIB_EXPORTS已经被定义,在【工程】->【设置】->【C/C++】页面的【分类】 //里选择【预处理器】(preprocessor)的预处理器定义中可以查看到DLIB_EXPORTS。#define DLL_API __
2010-06-09 15:47:00 736
转载 使用VC2005编译真正的静态Qt程序
首先,你应该该知道什么叫静态引用编译、什么叫动态引用编译。我这里只是简单的提提,具体的可以google一下。动态引用编译,是指相关的库,以dll的形式引用库。动态编译的Exe程序尺寸比较小,因为相关的库都没有包含进来。当然,程序发布的时候,还要把相关的库也一并发布出去。静态引用编译,是指把相关的库也一并引入Exe文件。这是程序的尺寸就会很大,不过,程序发布就会变得简单很多。其次,你可能会注意到我标题上写了“真正”这两个字。为什么我要强调真正这两个字呢?因为使用VC编译的C或者C++程序,都需要相关的C ru
2010-06-08 09:18:00 705
原创 windows下编译QextSerialPort
<br />QextSerialPort是一个跨平台的第三方串口类,可以很方便地在QT中对串口读写操作。但是默认使用的读写方式是查询方式,一般都是在程序中使用定时器。如果需要快速响应串口读写,可以使用多线程方式。最近了解了下QextSerialPort,写了个小程序用VSPM模拟串口接收到数据,于MainWindows中显示。<br />编译QextSerialPort前提是要了解QMAKE,编写QextSerialPort工程.pro文件如下:<br />PROJECT =
2010-06-07 16:57:00 3351
转载 介绍qmake
qmake是用来为不同的平台的开发项目创建makefile的Trolltech开发一个易于使用的工具。qmake简化了makefile的生成,所以为了创建一个makefile只需要一个只有几行信息的文件。qmake可以供任何一个软件项目使用,而不用管它是不是用Qt写的,尽管它包含了为支持Qt开发所拥有的额外的特征。qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者生成。项目文件通常很简单,但是如果需要它是非常完善的。不用修改项目文件,qmake也可以为为Microsoft Vi
2010-06-04 10:30:00 846
转载 常用DOS命令
<br />一,ping <br /><br />它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,出现如图1。所示的帮助画面。在此,我
2010-06-04 08:40:00 425
转载 Dos下cd命令的用法
<br /><br />C:/>cd /?<br />显示当前目录名或改变当前目录。<br />CHDIR [/D] [drive:][path]<br />CHDIR [..]<br />CD [/D] [drive:][path]<br />CD [..]<br />.. 指定要改成父目录。<br />键入 CD drive: 显示指定驱动器中的当前目录。<br />不带参数只键入 CD,则显示当前驱动器和目录。<br />使用 /D 开关,除了改变驱动器的当前目录之外,<br />还可改变当前驱动
2010-06-04 08:40:00 2687
转载 C语言编译全过程剖析
<br /><br />内容摘要:C语言编译的整个过程是非常复杂的,里面涉及到的编译器知识、硬件知识、工具链知识都是非常多的,深入了解整个编译过程对工程师理解应用程序的编写是有很大帮助的,希望大家可以多了解一些,在遇到问题时多思考、多实践。 一般情况下,我们只需要知道分成编译和连接两个阶段,编译阶段将源程序(*.c)转换成为目标代码(,一般是obj文件,至于具体过程就是上面说的那些阶段),连接阶段是把源程序转换成的目标代码(obj文件)与你程序里面调用的库函数对应的代码连接起来形成对应的可执行文件(exe文
2010-06-04 08:37:00 528 1
转载 自定义的插件如何加载到Qt Designer中
要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在。有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion)”法和插件法。升级法最为简便快捷。顾名思义,升级法就是把Qt自有的控件进行升级改造一番。选一个Qt自有的控件,如果它和我们新加的自定义控件有着相似的 API,那么只要在Qt Designer的对话框里面完成有关新控件的信息就一切大吉,新控件就可以用在Qt Designer创建的form中。但是在编辑和预览时,还
2010-06-03 16:48:00 2368
原创 经典C/C++面试题
1.介绍一下STL,详细说明STL如何实现vector。 STL (标准模版库,Standard Template Library)它由容器算法迭代器组成。 STL有以下的一些优点: 可以方便容易地实现搜索数据或对数据排序等一系列的算法; 调试程序时更加安全和方便; 即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。 vector实质上就是一个动态数组,会根据数据的增加,动态的增加数组空间。 2.如果用VC开发
2010-06-03 14:31:00 3443
原创 Qt源码分析之QObject
<br /><br />1.试验代码:<br />#include <QApplication><br />#include <QtCore><br />#include <QtGui><br />int main(int argc, char *argv[])<br />{<br />QApplication app(argc, argv);<br />int size = sizeof(QObject);<br />QPushButton* quit = new QPushButton("Quit");
2010-06-03 13:45:00 632
转载 关于初始化C++类成员
<br />在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种:<br />第一种方法:CMYClass::CSomeClass(){ x=0; y=1;}第二种方法:CSomeClass::CSomeClass() : x(0), y(1){}本文将要探讨这两种方法的异同以及如何使用这两种方法。<br /> 从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始化列表,之所以要使用这种语法有两个原因
2010-06-01 09:58:00 443
Apress.Pro.CSharp.2010.and.the.dotNET.4.Platform.5th.Edition.May.2010
2011-02-13
beginning programming with c++
2011-01-27
Microsoft Expression Studio:Using Design, Web, Blend, and Media to Create Professional Digital Content
2011-01-27
VB.2008.Databases
2010-12-08
OpenGL建模技术在VC.NET环境下的实现方法研究
2009-12-30
OpenGL及其在VC_开发环境下的编程实现
2009-12-21
OpenGL及其基于VC6.0的开发
2009-12-21
C语言大全第四版及代码
2009-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人