自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深入思考

衣带渐宽终不悔,为伊消得人憔悴

  • 博客(47)
  • 资源 (7)
  • 收藏
  • 关注

原创 NGUI坐标系统

1. 坐标系如下图所示:

2014-08-11 10:35:27 1155

转载 编码问题

2014-03-19 13:00:05 612

翻译 QuickLuaTour

1. 注释单行注释:以--开头多行注释:第一行以--[[开始,最后一行以]]--结束 2. 类型Lua中的变量是没有类型的,但是值是有类型的。因此定义一个变量时不需要指定变量的类型。通过type函数可以获得值的类型字符串。Lua中值类型有下述几种:nil, booleans, numbers, strings, functions, userdata and threads

2014-02-17 01:18:12 879

原创 c++ 类型转换(c cast static_cast dynamic_cast)

1.隐式类型转换C++的隐式类型转换继承了C语言的基本数据类型的隐式转换,同时加入了派生类到基类的隐式转换。隐式类型的转换主要用在赋值或者作为参数传递的时候,在兼容的类型之间的转换。如果按照C++的思想,所有的操作都是函数(像+,=这些运算都是可以通过重载运算符来实现的),那总结起来就是一种用途:作为参数传递时:class Base{};class Derived:publ

2013-04-18 15:50:18 3073

转载 epoll 事件的检测

1、listen fd,有新连接请求,触发EPOLLIN。2、对端发送普通数据,触发EPOLLIN。3、带外数据,只触发EPOLLPRI。4、对端正常关闭(程序里close(),shell下kill或ctr+c),触发EPOLLIN和EPOLLRDHUP,但是不触发EPOLLERR和EPOLLHUP。关于这点,以前一直以为会触发EPOLLERR或者EPOLLHUP。再man e

2013-04-08 11:36:29 1818

转载 C++习惯用法之RAII

C++号称是多范式的通用编程语言, 但是RAII实际上已在C++编程技术中变成不可或缺的核心技术。 RAII几乎无处不在的身影不仅仅来自于C++之父的大力提倡, 更来自于这一技术本身的简单, 高效和几乎无所不能的适应面。如果您还没有听说过RAII的话, 那么我在这里再重新叙述一遍, RAII是下列英文短语的首字母缩写:Resource Acquisition Is Initialisati

2013-03-29 09:45:16 1000

原创 排序算法的c++模板实现

1. 快速排序快速排序的思想很简单,但是统计效率是在O(n*lgn)中最高的,付出的代价是它的最差排序复杂度也是最高的,是O(n2)的复杂度。当然,通过一定的方式进行改造,例如”三者取中法“可以将最差时间复杂度进行降低。快速排序是不稳定的,因为在选择到相等元素时,它的选择是直接跳过;可能你会想,可以选择把相等元素当做比它大的元素,其实还是不行。因为快速排序属于交换排序,交换的两个元素中间的位置

2013-03-24 16:54:39 976

转载 FreeType使用步骤

1.初始化库FT_Library library;FT_Face face;FT_Error error = FT_Init_FreeType( &library ); 2. 加载相应的字体文件FT_New_Face( library, "/usr/share/fonts/truetype/arial.ttf", 0, &face );3. 设置字体的大小

2013-03-14 16:51:24 3331

转载 换行符(CR LF)

1 回车符号和换行符号产生背景:关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

2013-03-11 13:54:40 2954

原创 搜索树---排序二叉树和平衡二叉树的C++实现

1. 理解:1.1 排序二叉树  首先需要介绍的是数据结构,这里使用了模板来适应不用的数据类型:  template   class BSTreeNode{   public:   ElementType element;/*二叉树中存放的数据*/   BSTreeNode *parent;/*节点的父亲节点*/   BSTreeNode *lchild,*rc

2013-03-10 23:21:18 1741

转载 查找文件命令---find, locate, whereis, which, type

1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:  $ find   - : 所要搜索的目录及其所有子目录。默认为当前目录。  - : 所要搜索的文件的特征。  - : 对搜索结果进行特定的处理。如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在

2013-03-08 14:27:21 1058

转载 ogre的天空----SkyBox,SkyDome和SkyPlane

Ogre提供了3种不同类型的天空:天空盒,天空穹和天空面。天空盒一个天空盒基本上是场景中一个围绕所有对象的巨大的立方体。使用方式如下:mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");当我们调用setSkyBox的时候,我们可以设置几个有用的参数。第一个参数决定了是否启用天空盒,如果以后你想禁用天空盒,只需简单的调用:mS

2013-03-08 11:45:29 2115

转载 c++智能指针auto_ptr和shared_ptr

1.智能指针——auto_ptr        auto_ptr 类可以用于管理由 new 分配的单个对象,但是无法管理动态分配的数组(我们通常不会使用数组,而是使用 vector 代替数组)。auto_ptr 在拷贝和赋值的时候有不寻常的行为,因此 auto_ptrs 不能被保存在 stl 的容器中。当 auto_ptr 离开了自己的作用域或者被销毁,由 auto_ptr 管理的对象

2013-03-07 16:08:54 1300

转载 c和c++标准

K&R C  1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色: 结构(struct)类型长整数(long int)类型无符号整数(unsigned

2013-03-07 11:22:54 866

原创 effctive c++ 学习

1. 构造函数和析构函数的执行顺序     结论:有继承关系时,类的构造函数的调用顺序:先父类,后子类;对于每个类,都是先初始化成员变量,再执行构造函数。析构函数的调用顺序,先子类,后父类;对于每个类,先执行该类的析构函数,再执行成员的析构函数。类中的成员按照声明的先后顺序执行构造函数,析构时顺序相反。     形象化的理解就是拿盖房子类比:先盖基础,再盖上层; 拆的时候先拆上层,后拆下面

2013-03-06 00:18:15 1092

转载 github删除repository

github中删除一个repository的功能不太好找,这里介绍一下:  一:首先点击进入你要删除的repository,点击settings,如下图:  二:将网页拉到下方,找到Deletethis repository 按钮,点击:  三:在弹出的对话框中输入你的repository的名字:  然后点击下

2013-03-01 10:56:14 1189

转载 sed命令

1. 简介:sed(stream editor,流编辑器)用来编辑文本的一个工具,主要使用正则模式匹配来完成其功能;sed并不会对文件内容进行修改,只是把处理过后的内容进行输出。2. 选项:    -i : 直接修改文件内容   -n: 只显示匹配行3. 正则表达式符号解析:    ^:一行的开始    $:最后一行或者一行的结束    \    \>:词尾

2013-02-20 23:33:02 913

翻译 场景管理

场景管理是3D引擎的一个核心部分,因为它是引擎的用户每天都要用到的一个特性。通常的做法是通过场景图(可能这样称呼不太准确)来实现,场景图就是一个数据结构,有:层次结构(火炬在英雄的手中),空间结构(一个兽人在英雄的旁边)以及状态结构(火炬当中的火是alpha混合的)。  这样一个结构的问题是,它试图成为一个万事通,但是最后在任何一方面都没有优势。互联网上已经有过许多对此的讨论,一般的共识是这样

2013-02-06 11:29:41 1384

翻译 场景树和空间图

场景树这是整个场景的一个层次结构的表示,通过一棵简单的树来实现:一个“节点”有一个父亲和任意数量的孩子。这个数据结构用来管理层次结构的物体变换(位置和方向),以及他们的动画。在FlExtEngine中,CSceneNode类拥有一个update方法,用于对node的变换进行更新;它还有一个accept方法,这样就可以使用访问者模式以实现更好的扩展性。空间图这是整个场景的一个空间关系

2013-02-06 05:20:36 5411

翻译 3D API

目前主要有两套3D API:Direct3D和OpenGL。我不想卷入哪个更加优秀的争论。他们都针对相同的底层硬件提供了接口,区别在于接口的质量和简单程度以及他们的实现(驱动),而不是功能特性。  微软的Direct3D提供了一套相当好的接口(第九版和第十版),但是深受函数调用问题模型之害:绘制函数需要强制内核上下文切换,这是一个相当大的性能开销。另外一个缺陷是它提供的API在版本之间变换,这

2013-02-05 14:17:54 835

翻译 3D 引擎做什么

3D引擎的任务是在屏幕上显示整个世界,更为精确的应该是显示用于感兴趣的部分。这意味着,3D引擎只需要显示整个世界的一个子集,这个子集是用户视野当中可见的部分。  所以,3D引擎的一个任务就是以尽可能快的速度找出整个游戏世界中的可见部分的这个子集。为了达到这个目的,我们将世界分成多个区域,每个区域中保存了该区域中包含的3D物体。然后,引擎会通过照相机的视点(camera point of vie

2013-02-05 11:30:48 905

翻译 什么是3D引擎

通俗的来说,3D引擎就是一个能够在屏幕上显示3D图像的软件。为达到此目的,现代的3D引擎都是使用一套API通过驱动或者运行时来和硬件进行交互。一个3D引擎可能是一个游戏引擎的一部分,但是游戏引擎也可以不需要3D引擎。  3D引擎使用的API较为底层,用来处理Vertex Buffers, Index Buffers, Shaders, Textures, Render Targets等;经过封

2013-02-05 10:54:34 3187

原创 游戏

“看到许多制作游戏的人根本不玩游戏真是让我大吃一惊。”――Bill Roper1. 暴雪公司(Blizzard)  暴雪娱乐是一家全球知名的电脑游戏和电视游戏软件公司,是属于维旺迪(Vivendi)的子公司。公司成立于1991年,总部位于Carifornia, Irvine。暴雪公司在电子游戏界享有极高的评价,在全世界都有大批的追随者。他的游戏产品包括魔兽争霸系列,魔兽世界系列,星际争

2013-01-11 15:17:08 2199

原创 动画分析

1. SceneNode Animation是根据mInitPosition等进行的,而不是根据当前的位置移动;2. 如果想设置为根据当前的位置进行移动,则需要在动画开始前设置setInitialState,将当前状态作为动画的起始状态;3. 动画结束后,不会恢复到原来的位置,而是动画结束时候的位置(说明动画的最后变换是写到了Node中的mPosition, mOrientation, m

2013-01-10 20:17:37 682

转载 grep 命令

用法:grep [option] pattern [file...]首先创建我们练习grep命令时需要用到的demo文件demo_file。$ cat demo_fileTHIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.this line is the 1st lower case line in this file.This

2013-01-06 11:01:03 636

原创 命名方法

俗话说的好,磨刀不误砍柴工。一致的命名方法犹如路标,给编程者清晰的编程体验。下面给自己以后的编程订立一下命名方法守则:      首先最重要的一点是,变量名要能够提供足够的信息,让其他人看到这个变量就大概知道这个变量名到底想表达什么意思。例如,enum CameraType m_type;这个变量名就不好,因为不知道这个m_type到底指的是什么东西的type。   其次是一些具体的命

2012-12-24 11:23:44 676

原创 windows编译记录

记录下,否则白做了。以后关于visual studio的信息都记录在这个地方吧,备查。 关键字:vs工程设置  windows库文件1.库文件 因为编译的是库文件,所以要对windows的库有所了解。静态库和linux系统中的库文件类似,也是包含了全部的obj文件;动态库有所不同,因为需要依赖一个静态库来让其他程序编译通过,运行时这个静态库则不需要。2.查看库文件内容. 动态库

2012-09-11 12:36:39 602

原创 cg

图形硬件发展历史:图形处理器(GPU)的发展历史简介 http://www.blogjava.net/chinqt/archive/2007/05/17/118027.html当前嵌入式设备的两大GPU比较:http://www.differencebetween.com/difference-between-powervr-sgx543mp2-and-vs-mali-400mp/

2012-08-23 01:01:28 511

原创 我的linux

1.打包/解包tar -zcvf  work.tar.gz workz:.tar.gz 压缩   c:compress,仅打包 v:显示  f:filez可以换成j, 压缩成tar.bz2格式的压缩包仅仅打包和解压缩  gunzip xxx.gz gzip xxxunzip work.ziptar -xzvf  work.tar.gz2. ps 命令:p

2012-08-03 17:00:20 1294

原创 通用基于TCP协议的C/S模型的代码

最近跟老师做一个项目,里面用到了客户端服务器模型。本科的时候也做过,但是那时候纯粹是为了完成任务,没有考虑什么东西,只是实现了单个客户和服务器的通信,发送一些图片什么的。看到老师写的代码很牛逼,直接拿以前的代码的动态库过来就可以使用了,而且工作的很好,因此有了模仿的想法。我的目的:构造一个灵活的服务器,顺便构造处理相同类型的客户端;服务器端:windows采用select 模型 和完成端口实现

2012-07-28 17:33:30 1680

原创 变长结构体

看到老师写的一个结构体很好奇,结构体的最后是一个长度为0的数组,当时感觉老师是不是写错了,这样写意义何在呢?都没有分配空间,貌似没有存在的意义。后来网上查了一下,其实这是在很多高级的东东里面都用到的东西,linux kernel, MFC, openoffice, 估计更多的地方都用到了。先说说我的理解:struct example{    __u16 tag_type;

2012-07-25 23:51:05 1105

原创 我的Makefil

1. Makefile-exeCC:=gccCXX:=g++RM:=rm -rfOUTDIR:=$(EXEDIR)EXENAME:=$(PROJNAME)EXESRCS:=$(COMPILE_FILES)CFLAGS:=$(COMPILE_FLAGS)LDFLAGS:=$(LINK_FLAGS)DEBUG:=YEXEOBJS:=$(patsubst %.cpp,%.oo,$(

2012-07-19 00:15:12 748

原创 我的OGRE学习记录

ogre cookbook:experiencelinux 下环境搭建:http://blog.sina.com.cn/s/blog_753f4e5f010141th.htmlwindows下:http://www.cppblog.com/Cunch/archive/2011/03/01/140770.html一、basic tutorial1:ogre三大基础

2012-07-17 13:46:29 809

转载 source insight设置

只能删除半个汉字的问题(需要一个superbackspace插件)① 复制入SourceInsight安装目录;* ② Project→Open Project,打开Base项目;* ③ 将复制过去的SuperBackspace.em添加入Base项目;* ④ 重启SourceInsight;* ⑤ Options→Key Assignments,将Ma

2012-07-13 19:06:44 668

原创 GIMP使用心得

GIMP真的是一个好东西,linux下的ps1. 创建一个透明背景的cursor创建一个图像,选择大小,设置背景透明-》打开一个cursor的图片,copy->到创建的图像上选择粘贴,然后稍微移动、放缩即可。2. 裁剪图片 这里有个裁剪的工具,直接使用即可,裁剪完成后双击裁剪区域即可。

2012-07-11 10:47:40 1615

原创 ogre particle system script分析

particle_system tutorial{ quota 2000//设置这个系统在某一时刻所允许包含的最多粒子数 //例子系统使用的材质,此系统中的全部粒子使用相同的材质每一个粒子可以通过使用它自己的颜色属性为材质附加颜色 material Examples/FlarePointSprite particle_width 3//在世界坐标系中的宽度值 particle_heig

2012-06-27 11:51:09 1279 1

原创 c语言不使用中间变量交换两个数

1. a^=b^=a^=b;2. a = a + b; b = a - b; a = a - b;网上听说有人在gcc下不使用编译优化的情况下第一种方法不起作用,特意尝试了下,结果是正确的。windows:visual studio 2005:通过linux:gcc 4.6.3 :通过strtok函数,用于分割字符串,第一次调用使用被分割字符串,后面使用null

2012-06-15 15:48:26 1184

原创 ogre 资源管理 resourcegroupmanager

1.一般步骤ResourceGroupManager::addResourceLocation(dir, type, group);...ResourceGroupManager::intializeResourceGroup(group);然后这个group就不能再加入资源的路径了2.手动解析文件http://egamesir.blog.163.com/blog/

2012-06-13 17:44:55 1583

原创 通用AVLTree

算法描述:在平衡的二叉排序树T上插入一个关键码为kx的新元素,递归算法可描述如下:㈠ 若T为空树,则插入一个数据元素为kx的新结点作为T的根结点,树的深度增1;㈡ 若kx和T的根结点关键码相等,则不进行插入;㈢ 若kx小于T的根结点关键码,而且在T的左子树中不存在与kx有相同关键码的结点,则将新元素插入在T的左子树上,并且当插入 之后的左子树深度增加1时,分别就下列情况

2012-06-08 08:40:40 559

原创 文件系统

yaffs:根据flash存储器的特点而设计的一个较为简单的文件系统,所有的数据都是按照块来存储的,yaffs1时有的块是512字节,现在yaffs2支持的一般都大于512字节,一般是2048字节,(以此为例讲解)。同时每个块后面还有64字节的数据用来存放tag信息,有id,文件大小,ecc校验值等。文件系统的逻辑结构是通过parentid来维持的,这个信息存放在一个文件的第一个块中的前面

2012-06-04 18:32:48 532

IPV6修复工具

解压文件之后,若是win7以上用户,右键使用管理员权限运行,按照提示即可完成相应IPV6修复工作。

2014-05-29

3D earch(ogl impl)

opengl实现的地球 使用简单的opengl二次元来进行纹理的控制的,当前也可以控制法线等,自己看红宝书上关于二次元的描述吧。

2013-08-16

tetris for windows(MFC & OpenGL)

俄罗斯方块的MFC实现 使用了OpenGL 代码使用了两个线程,但是没有考虑线程安全

2013-08-12

tetris for android

一个简单的android版本俄罗斯方块实现 只是可以玩而已,需要修改的尽管修改

2013-08-12

定时黑屏保护眼睛

在Linux里面用glut写个一个小程序,该程序就是提示我们要注意保护下我们的眼睛,避免长时间注视屏幕导致疲劳。 先make执行编译,后./install.sh安装到/usr/bin目录下 编译出来两个可执行文件,ScreenSaver用来黑屏,snap用来定时启动ScreenSaver,用法:snap 时间(分钟计时),当时间到时,屏幕会自动黑屏,如果想推出黑屏,键盘上输入 work;否则会在五分钟后自动解除黑屏幕

2013-01-15

ogrexmlconvertor linux版

linux下编译通过了,主要是修改了tinyxml的几个函数,使得编译通过了。希望对其他人有用

2012-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除