作者 :刘丰恺
作者博客:若梦浮生
转载需征得作者本人同意
之前试着在Android平台封装了一个轻量级的游戏开发框架JustWeEngine ,因为是轻量级的所以也没想太多,很多地方的处理都不太够,比如关于碰撞事件的处理,就是一个简单的On2的遍历,前一阵还被吐槽了233333。
其实优化On2碰撞的思路是一而贯之的,就是不去处理根本不可能撞在一起的对象。所以就文章讨论一下我了解的在游戏开发中经常被使用的碰撞机制。
示例图
图示是使用了四叉树进行碰撞判断的一个图示,变成紫色的是从四叉树中拿取的离我最近的可能碰撞对象,这里我们只需要处理最近的四个对象就可以了,这个demo感谢F
继续阅读 »
首先说明我的软件配置:
Computer: Windows7 SP1 64位
VS2010:旗舰版 SP1
Matlab:R2012a ,64位
下面我们将具体讲述调试Mex文件的全过程。(有图有真相哟! )
more
注意1:我们下面的做法是在64位基础上进行的,对于32位同适用,只要你注意减少某些操作即可。我们会在合适的地方进行相应的说明的,所以请放心操作。
注意2:由于这里建立的Mex文件里包含了opencv 2.4.9,所以如下的配置也会涉及到opencv的部分设置,如include,lib路径和附加依赖项,但是如果你也想使用opencv的话,你还需设置环境变量,在Path中添加bin路径。
MEX的说明
写MEX程
继续阅读 »
分析:按字典序排列的n个单词构成了一个隐式的有向无环图:每个单词单词都有一条出边指向在它字典序之后的每一个单词。要在这张图里找出符合条件的最长路径包含的顶点数。简单的想法就是“暴力”回溯了:对每个顶点进行一次回溯,找出以该点开始的最长的edit step ladder——这个时间复杂度高得能上了火星!思考一下就会发现,回溯包含了大量的重复计算:假设以单词w开始的最长ladder长度为l,那么对于字典中排在w之前的每一个单词(实际上是edit step为1的那些单词),在回溯经过w时都要做同样的重复计算,浪费了大量时间。如果我们计算好了以w开始的最长ladder的长度l,那么对于w的每一个one edit step前驱顶点,其最长la
继续阅读 »
开机自启动
在Hack必备的命令与工具中,介绍了如何编译自己的C程序并手动启动。今天介绍如何使程序变为开机自启动。
1、首先打开Xcode创建一个plist属性文件,如下图所示:
继续阅读 »
分析:对图做广度优先遍历,一边对节点v着色一边检查v是否与某个已着色的临接点同色。more
```cpp
include
include
include
define RED 1
define BLACK (-1)
继续阅读 »
阅读openNi的个人小结
more
![我的类图][image-1]
流程图概览
大致概览上来说,整个项目的结构是一个标准的中间件结构,上下层分别面向开发者和驱动层,所以圆框内的我略过,用了相对稳定和结实的散在C_API口,为了应对不同人群的胃口,打散了这些功能口的面向对象特性以后又多做了几层封装来包装这些接口;
1是为上下层的书写提供了一个标准和文档注释的说明整理地方
2是为上下层的用户提供了更多的选择和设计可能
3原本的设计用意是散在接口的上下层做库的包装,以上或者以下均可见,驱动层的架构的驱动仅仅是为接口的统一规格实现设计的中间件。如果涉及到加密,我认为主要的openNi实现库实行即可。
同时项目具备良好的跨平台性
继续阅读 »
Godaddy是全球第一大域名主机上,其域名地位在世界上是无人可比的,但是由于godaddy没有中文站点,所以很多用户不知道如何注册godaddy的域名。今天小编就向大家展示一下godaddy域名注册的全部教程。以下为本人在windows 7下亲测可用。
more
第一步 注册账户
1.登录官方网站:https://www.godaddy.com/
在左上角选择United States-English,如下图
然后开始注册账户,点击右上角Sign In,就会出现
点击后面的"Create MY ACCOUNT"按钮注册新账户。
2.填写注册信息
新版本填写资料很简单,只需要填写邮箱、用户名、密码和四位数的PI
继续阅读 »
content
{:toc}
问题描述
我们每次使用命令
git clone git@gitlab.xxx.com:xxxxx.git
默认 clone 的是这个仓库的 master 分支。如果最新的代码不在 master 分支上,该如何拿到呢?如下图所示,最新的代码可能在daily/1.4.1分支上,我们希望拿到这个分支上的代码。
继续阅读 »
本篇我们阐述对Github上给出的SDM程序,我们做的一些Bug修正。关于SDM for face alignment,请参考:
《 Supervised Descent Method and its Applications to Face Alignment》
more
我们的程序在开始阶段需要载入数据,由于数据层次不齐,所以需要做形状归一化。其中的一个必要操作就是裁剪图片,取出包含人脸的那部分区域。如下图:
,
实际上我们不要这么大,我们只需要人脸的那部分,于是我们根据shape的包围盒并且向左上和右下拓展,扩大截取区域,得到:
但是在截取过程中,我们发现对于一些人脸过于靠近边界的图片,我们的截取区域超过了图片的范围,如图
继续阅读 »
如果用 D3 来构建一个简单的散点图,我们需要创建一些圆点(circle)来展示你的数据。当你发现 D3 并没有提供内置的方法来同时创建多个 DOM 元素时,也许你会感到惊讶,但是,等等,为什么呢?
more
当然,你可以使用 append 方法来创建单个元素:
js
svg.append("circle")
.attr("cx", d.x)
.attr("cy", d.y)
.attr("r", 2.5);
这仅仅是一个圆点,我们需要的是一系列圆点,每个圆点代表一条数据。当然你可以用 for 循环来创建,但开始之前,请看看下面官方例子中的代码:
js
svg.selectAll("circle")
继续阅读 »