自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 E2BAF1CC

E2BAF1CCE2BAF1CCE2BAF1CCE2BAF1CCE2BAF1CCE2BAF1CCE2BAF1CCE2BAF1CC

2015-08-04 20:20:17 622

转载 游戏动画中欧拉角与万向锁的理解

我在2009年5月份左右拜读了《3D数学基础:图形与游戏开发》,当时对欧拉角中万向锁的概念一直是百思不得其解,也从未遇到过这种情况。书上有这样一句话:“如果您从来没有遇到过万向锁情况,你可能会对此感到困惑,而且不幸的是,很难在本书中讲清楚这个问题,你需要亲身经历才能明白。”今天我用3个多小时的时间再次回想了一下这个问题,总算想明白了,现在把思考的结果分享给大家.     下面我想说

2013-12-19 20:52:36 1226

原创 一个关于寻路算法的小程序

http://qiao.github.io/PathFinding.js/visual/

2013-11-15 22:01:20 688

转载 A*算法中启发函数的使用

A*算法使用启发函数h(n)来获得对于从任意结点n走到目标结点的最小代价的估计,因此选用一个好的启发函数是非常重要的.A*算法中启发函数的使用启发函数可以用来控制A*算法的行为.在极端情况下,如果h(n)=0,那么只有g(n)实际上是有用的,这时A*算法也就是迪杰斯特拉算法,它能保证一定可以找到一条最优路径.如果h(n)总是小于(或者等于)从结点n走到目标结点的步数,那么A

2013-11-12 21:19:04 26713 1

原创 DeviceToken

首先说一下app推送的大概流程: 1.app发送一个请求给APNS(ApplePushNotificationServer,即苹果推送通知服务器)2.APNS会根据设备的唯一标示(UDID)返回给app一个token3.app将得到的token发送给app的服务器4.服务器会把当前用户(指的是app的用户)的信息和token存入数据库,每当用户满足推送条件的时候,我们的serv

2013-09-19 15:10:04 843

转载 cocos2d-x中的autorelease pool

引用计数的由来cocos2d-x 的世界是基于 CCObject 类构建的,其中的每个元素:层、场景、精灵等都是一个个 CCObject 的对象。所以 内存管理的本质就是管理一个个 CCObject。作为一个 cocos2d 的 C++ 移植版本,在它之前有很多其它语言的 实现,从架构层次来说,这与语言的实现无关(比如 CCNode 的节点树形关系,其它语言也可以实现,如果是内存方

2013-09-16 17:44:56 1101

转载 A*算法入门

在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。 启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。估价函数:从当前节点移动到目标节点的预估费用;这个估计就是启发式的。在寻路问题和迷宫问

2013-09-04 19:01:48 606

转载 do...while(0) do...while(false)的妙用

do...while(0) do...while(false)的妙用    在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码

2013-07-30 10:57:21 584

转载 深入探讨C++中的引用

引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。  一、引用简介  引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一

2013-05-08 22:49:41 380

转载 用引用返回值

函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。  例如,下面的程序是有关引用返回的4种形式:    //*********************    //**   ch9_6.cpp  **    //*********************    #include     float temp;    float fn1(flo

2013-04-27 22:52:53 400

转载 Strcpy和Strncpy的区别

Strcpy和Strncpy的区别- -第一种情况:char* p="how are you ?";char name[20]="ABCDEFGHIJKLMNOPQRS";strcpy(name,p);   //name改变为"how are you ? OPQRS "     ====>错误!strncpy(name,p,sizeof(name))    //name

2013-04-27 22:05:11 473

原创 CONST的用法及常见问题

使用Const时候的问题问题1:const变量&常量例:为什么下面的例子在使用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢? const int n = 5;int a[n];答案与分析:1)这个问题讨论的是“常量”与“只读变量”的区别。常量,例如5, "abc",等,肯定是只读的,因为常量是被编译器放在内存中的只读区

2013-04-23 23:42:51 717

转载 (转)#ifndef 与 #program once 的区别

为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一    #ifndef __SOMEFILE_H__//为了防止重复的名字,通常采用文件名    #define __SOMEFILE_H__

2013-04-23 00:16:25 634

转载 关于C++中的前置声明

关于C++中的前置声明  2010-04-08 23:37:14|  分类: C/C++|字号 订阅今天一朋友问及C++中的前置声明问题,下面是我给出的回答。 在编写C++程序的时候,偶尔需要用到前置声明(Forward declaration)。下面的程序中,带注释的那行就是类B的前置说明。这是必须的,因为类A中用到了类B,而类B的声明出现在类

2013-04-23 00:05:40 478

转载 CreateFile函数

CreateFile函数详解CreateFileThe CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications res

2013-04-16 23:35:34 450

转载 Windows管道技术简述

不知你是否用过这样的程序,他们本身并没有解压缩的功能,而是调用DOS程序PKZIP完成ZIP包的解压缩。但是在程序运行时又没有DOS控制台的窗口出现而且一切本应该在DOS下显示的信息都出现在了那个安装程序的一个文本框里。这种设计既美观又可以防止少数眼疾手快的用户提前关了你的DOS窗口。 现在就来讨论一下,如何用匿名管道技术实现这个功能。 管道技术由来已久,相信不少人对DOS命令里的管道

2013-04-16 22:55:01 465

转载 使用CreateNamedPipe进行 进程通信的示例

使用CreateNamedPipe进行 进程通信的示例。#include#include#includeusing namespace std;DWORD WINAPI thread1(LPVOID param){char buf[256];DWORD rlen=0;HANDLE hPipe = CreateNamedPipe(TEXT("\\\\.

2013-04-16 22:53:46 6546

转载 C++ map的基本操作和使用

1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000

2012-09-05 13:25:12 292

转载 C++Vector用法

C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。Vector的存储空间是连续的,list不是连续存储的。一、 定义和初始化vector

2012-09-05 13:23:29 444

空空如也

空空如也

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

TA关注的人

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