- 博客(32)
- 资源 (7)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 关于指针的释放
一、 new 和 delete 指针变量 = new 数据类型;或 指针变量 = new 数据类型(初值); delete 指针变量; 二、 new [] 和 delete [] 指针变量 = new 数据类型[元素个数]; delete [] 指针变量; 三、 上面两者
2010-05-15 10:29:00
1007
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 wchar_t and char
Example: int n_wchar_t = sizeof(wchar_t); //n_wchar_t = 2 int n_char = sizeof(char); //n_char = 1 由上面例子可知,w
2010-05-15 10:04:00
642
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 加载位图树纹理的两种方法---背景透明
加载位图树纹理的两种方法,这两种方法都有局限性,如果大家还知道其他方法,可以分享一下~~ 方法一: ////////////////////////////////////////////////////////////////////////////////////////////////////函数名称: LoadTreeBmpFile//函数介绍://
2010-04-04 11:54:00
1660
1
转载 在Netty中支持https服务器
一、生成测试证书 1、安装Openssl sudo apt-get install openssl 2、生成证书(openssl生成证书 - fengmenghello的日志 - 网易博客) # 设定相关的目录 mkdir -p /etc/ssl mkdir -p /etc/ssl/private chmod
2015-08-25 09:24:53
7850
转载 VC++数据类型转换大全
Cpp代码 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; int i = 100;long l = 2001;float f=300.2;double d=12345.119;char userna
2010-12-13 08:34:00
638
原创 C语言编译模式
<br /> 编译模式是指如何在内存中放置程序代码及数据,如何分配堆栈,并确认占用的内存大小及如何存取它们,当指定内存模式(编译模式)以后,语言编译程序将按事先选择好的内存模式编译组织程序,C 语言中提供了6种编译模式,这6种模式是:微模式(Tiny),小模式(Small),中模式(Medium),紧凑模式(Compact),大模式(Large)和巨模式(Huge)。它们之间的关系如下图所示。用户可以按照自己的程序大小及需要进行选择。<br /> <br /> 所谓小程序就是指程序只有一个程序段,大
2010-11-25 00:14:00
1001
1
原创 BSS段、数据段、代码段、堆与栈
转自http://hi.baidu.com/nkd2002/blog/item/4e91a46d8e7e06fe4216946f.html<br />BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。<br />数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。<br />代码段:代码段(code
2010-11-25 00:13:00
500
原创 电表图像中电表计数区域定位算法
算法四先根据底色粗定位再扫描精确定位此算法程序的操作顺序是:“读入图像”—“灰度化”—“直方图均衡化”—“二值化”—“粗定位”—“反色操作”—“形态学处理”—“精确定位”。1、 先去掉电表图像的下半部分,保留上半部分用于定位条件:(1) 拍照时下对电表且图像刚好包含电表的所有区域;(2) 电表计数区域都在电表的上半部分(椐观察6个电表,它们的计数区域都在电表的上半部分)。 方法: 使用了OpenCV中的LoadRect()函数来对原
2010-08-09 10:28:00
2475
1
原创 MFC 键盘响应事件
<br />键盘响应有三个函数:<br />(1) WM_KEYDOWN<br />void CMyView::OnkeyDown(UINT nChar , UINT nRepCnt , UINT nFlags)<br />(2)WM_CHAR<br />void CMyView::OnChar(UINT nChar , UINT nRepCnt , UINT nFlags)<br />(3)WM_KEYUP<br />void CMyView::OnkeyUp(UINT nChar , UINT nRep
2010-08-09 00:17:00
4947
原创 fseek() 移动文件指针
<br /> 以下是对文本文件操作的例子:<br /> <br />int fseek(FILE* stream, long offset, int origin),<br />参数:<br />stream: Pointer to FILE structure.<br />offset: Number of bytes from origin.<br />origin: Initial position: SEEK_CUR: Current position of file pointe
2010-08-09 00:07:00
1411
原创 单文档视图分割
1、所用到的技术:表单视图和静态切分。(1)表单视图 添加一个MFC类,使此类的基类为CFormView类,则创建了一个表单视图。此视图还没有关联到任何文档,可包括单文档中向导自动添加的视图类的.h文件,可以利用此类中的GetDocument()函数与文档建立关联。(2)静态切分 重载OnCreateClient()函数,用virtual BOOL CSplitterWnd::CreateStatic()函数来创建静态切分窗口;然后用virtual BOOL CSplitterWnd::
2010-08-08 17:41:00
563
原创 memset() 与 memcpy() 的进一步理解
<br />例子:<br /> <br />(1)char buffer[] = "This is a test of the memset function.";<br /> printf("Before:%s/n", buffer); //Before:This is a test of ......<br /> memset(buffer , '*' , 4) ;<br /> printf("After:%s/n", buffer); //After
2010-08-08 17:31:00
658
原创 C/C++ 读写文件
<br /> 文件本质上是一个字节序列。<br /> 文件具有开头和结尾,它的当前位置通常被定义为距离开头多少个字节。<br /> 在文件中可以写入任何数据。如你所见,把数据写入文件的方式多种多样,但无论数据是什么,最终得到的只是一个字节序列。这意味着,在读入文件时,程序必须知道文件表示的数据是什么类型的。你已经见过多次了,一个字节序列表示的是什么,是由如何解释它决定的。一个12字节的序列可能是12个字符、12个8位的有符号整数、12个8位的无符号整数、6个16位的有符号整数、
2010-08-08 17:18:00
579
原创 inline 内联函数
在C++中,用户可以创建实际上不调用的短函数,它们的代码在每次调用的程序行里得到扩展。这个过程类似于作用类函数的宏。 内联函数是C ++和一个重要补充的原因是,它们能使程序员写出非常有效的代码。因为类一般要求几个经常被执行的接口函数,因此,这些函数的效率非常重要的。当然,虽然函数行内扩展能产生较快的执行速度,但由于重复编码会产生较长的代码。 在类声明内定义短函数是可能的。如果一个函数是在类声明内定义的,它将自动转换成内联函数。没有必要在函数声明的前面加上关键字inline.
2010-08-08 16:59:00
598
转载 三维地形概述
<br /> 随着计算机技术和相关科学理论的发展,三维电子地图的制作已经经历了线划地形图、实体型地形图、三维真实感地形图三个阶段。<br /> 三维地形的模拟是开发可视化系统中最基本也是最重要的技术之一。地形模拟分为两类:真实地形和模拟地形。<br /> 真实地形:真实地形是现实世界中真实地形的再现,具有非常高的真实度,必须采用真实世界中的具体数据来构造,在这种情况下一般采用数字高程模型(Digital Elevation Model,DEM)方法。这种方法数据结构比较复杂,数
2010-08-08 16:44:00
1566
转载 常用的3D模型概述
在计算机平台上,常用的3D模型有3DS,OBJ,MD2,MD3,MS3D等多种格式。这些格式在存储方式上存在很大的差别,但基本思想大同小异。3D模型又分为静态模型(如3DS,OBJ)和动态模型(如MD2,MD3,MS3D)。在动态模型中除了保存模型的定点和表面数据外,还有与动画相关的信息,这些动态模型渲染起来较为复杂。
2010-05-15 09:58:00
1301
原创 在OpenGL在实现复杂的动画模型
OpenGL是一个强大的三维图形开发接口,它可以利用几种基本的图形元素构建任何三维模型,但在进行复杂的三维建模时,直接使用OpenGL中的图元绘制函数或曲面绘制命令是不太现实的,尤其涉及到复杂的动画模型时,而人体运动模型则是一种复杂的三维动画模型。因此,一般情况下可以利用目前较为流行的三维建模工具,如3DMAX,MAYA等软件进行建模,再在OpenGL中读取模型,这样就可以减少编程的工
2010-05-15 09:52:00
3179
原创 OpenGL中颜色、alpha及混合的理解
如果启用了混合,alpha值常常用于把被处理片断的颜色值与已经存储在帧缓冲区中的像素的颜色值进行混合。alpha值可以用于alpha测试,根据片断的alpha值决定接受或拒绝它(混合出现在场景进行光栅化并转换为片断之后,但在最终的像素被绘制到帧缓冲区之前)。 如果不使用混合,每个新片断将改写帧缓冲区中已经存在的颜色值,就像该片断是不透明的那样。如果使用了混合,可以控
2010-05-15 09:41:00
3527
1
原创 VC中为什么Debug或者Release中的.exe文件无法使用
一、Debug版本 我们在VC里面编程一般用的就是Debug版本,打开文件中的Debug文件夹,可以看到.exe文件,一般情况下,双击此文件可以执行,但有一些情况可能会执行不了。当你在程序中用到额外的文件时,例如BMP文件、TGB文件、OBJ文件等等,你需要把这些文件拷贝到Debug文件里面,才能正确执行.exe文件。 二、Release版本 1、生成Re
2010-05-15 08:49:00
2475
原创 TCHAR、wchar_t、char及字符串处理函数区别(转)
一.ANSI和UNICODE 2.ANSI字符和Unicode字符 ANSI字符类型为CHAR,指向字符串的指针PSTR(LPSTR),指向一个常数字符串的指针PCSTR(LPCSTR);对应的Windows定义的Unicode字符类型为WCHAR(typedef WCHAR wchar_t) ,指向Unicode字符串的指针PWSTR ,指向一个常数Unicode字符串的
2010-04-28 16:08:00
853
原创 位图结构 Bitmap Storage
摘自MSDN链接网址:http://msdn.microsoft.com/en-us/library/dd183391(v=VS.85).aspxBitmap StorageBitmaps should be saved in a file that uses the established bitmap file format and assigned a name with t
2010-04-04 11:51:00
527
原创 软件程序的运行模式
软件程序的运行模式可以分为3种:独立运行模式、Client/Server模式、Browser/Server模式。 (1)独立运行模式 独立运行模式一次只允许一个用户使用,例如Word,Excel等程序。这是一种最常见的软件运行模式。 (2)Client/Server模式 Client/Server模式将软件程序分为两部分:一个是Server(
2010-04-04 11:43:00
3328
原创 Visual C++程序的debug的可执行文件运行不了
问题描述:在Visual Studio中OpenGL程序的debug目录下的可执行文件不起作用,但是当你进入程序的编辑环境中点击生成然后调试之后,程序可以正常运行。 问题解决:这是因为你没有把你要加载的纹理图片文件或者其他一些你要用到的资源文件复制到debug目录下。另外 :像dll文件、OpenGL几个特殊的头文件及其他一些文件不用放在debug目录下。
2010-03-26 15:52:00
1703
原创 OpenGL 选择机制(拾取)的理解和特别注意问题
一、对于选择的理解 有些图形应用程序只是简单地绘制静态的二维和三维物体图像。另外还有一些应用程序允许用户标识屏幕上的物体,并移动、更改或删除这些物体(或者进行其他操作)。由于在屏幕上所绘制的物体一般会经历多次旋转、移动和透视变换,因此在三维场景中判断用户所选择的是哪个物体是比较困难的。为了帮助你实现这个目的,OpenGL提供了选择机制,并使用一个特殊的工具函数,确定用户在某个区域中所
2010-03-13 09:47:00
2054
2
原创 OpenGL 天空盒
所谓天空盒,就是用一个矩形方盒作为形容远景贴图的物体。 在长方体的前后左右上5个面贴有天空远景的5幅图形(需要时底面也可以帖)。这5幅图形必须有以下规律: 1、图形为BMP位图格式,尺寸(像素点)为2的N次方; 2、顶图的4边与前后左右图的上边相连; 3、前后左右的4幅图形必须首尾相连。 对于每个面的贴图,就图的方向
2010-02-04 16:43:00
4793
原创 OpenGL 关于平面树的一点点理解
(1)如何使树的背景透明 当树的背景为纯色时,从文件中读进图片颜色信息后,现用数组存储此图片的颜色信息,然后用IF语句把颜色为纯色的像素点的深度设置为0或1,然后再深度测试,使用混合,就可去掉图片的纯色背景了。 (2)观察平面树时的问题 A、可使树随观察方向变化而旋转,始终使观察者看到完整的树的一面; B、在表示一棵树的地方
2010-02-04 16:37:00
1028
原创 OpenGL中关于视图要注意的几个问题
(1)记住,计算机图形的要点就是创建三维物体的二维图像(它必须是二维的,因为它是在平面的屏幕上显示的)。但是,当你决定在屏幕上绘图时,你必须用三维坐标的方式来考虑。 (2)“视图和模型变换”:这些变换对模型和照相机的相对位置进行定位,以获得所需的最终图像。 “投影变换”:描述了如何指定可视空间的形状和方向。可视空间决定了场景将如何投影到屏幕上(使用正投影或透视投影),以及
2010-02-04 16:19:00
764
原创 OpenGL 漫游
在计算机3D图形处理技术中,也有类似我们眼睛的东西gluLookAt()函数,如果这个观察点在OpenGL场景中的位置发生变化,我们在计算机屏幕上的图像(相当于我们的大脑的映像)就发生变化。 gluLookAt(视点,目标点,视点方向)其中视点(观察点)是一个三维坐标量: X量的变化就像是我们在场景中横向移动。 Y量的变化就像是我们的身体高
2010-02-04 16:03:00
2570
2
原创 OpenGL 纹理
摘自《OpenGL游戏程序设计》 当一个纹理映射到一个多边形上时,纹理就将随着此多边形的变换而进行相应的变换。纹理映射可以被认为是赋给了3D物体或多边形的一种皮肤。可以在物体上移动、拉伸或者压缩这个皮肤,但无论何种情况下,这个皮肤或者说纹理图总是不会与其所应用的多边形分离的。 将纹理数据从一个文件中载入内存之后,需要将其定义为一个OpenGL纹理图,而纹理图的维数
2010-02-02 22:48:00
1069
原创 对于OpenGL中光照和颜色混合的理解
摘自《OpenGL游戏程序设计》 光照 //光照变量 float ambientLight[] = {0.3f,0.5f,0.8f,1.0f} ; //环境光 float diffuseLight[] = {0.25f,0.25f,0.25f,1.0f) ; //散射光 这些变量定义了光的属性。ambientLight变量
2010-02-02 19:48:00
2077
原创 OpenGL和矩阵
OpenGL中的变换是依靠矩阵来完成所有数学计算的。OpenGL中有一种叫矩阵堆栈的东西,对于构建由很多简单物体组成的复杂模型是很有用的。 OpenGL中的矩阵堆栈提供了这样一个功能:用户能够相对于物体B的局部坐标原点移动物体A,以物体A的局部坐标绘制A,最后再撤销整个变换,以使得当前位置再次回到B物体的局部坐标原点。两个堆栈操作glPushMatrix()和glPopM
2010-02-02 08:59:00
1798
1
原创 设置OpenGL的运行环境
因为OpenGL仅仅是图形应用程序的编程接口,所有的用户交互或者屏幕窗口事务都需要其宿主操作系统来处理。为了减轻开发人员的负担,每种操作系统通常都有一组与OpenGL相应的扩展组件来处理用户交互和宿主环境的窗口处理。 对于UNIX系统,是通过GLX来完成的。 而在WINDOWS操作系统中,是使用一组叫做wiggle的函数。正是基于这个原因,此组函数中的每一
2010-02-02 08:51:00
940
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人