前段时间,项目中需要改进一下碰撞算法。我查了很多资料。。最后完成了http://hi.baidu.com/jrsnail/blog/item/007e9c7faf1ba90328388a8d.html这个对我影响很大。。
我们以前的算法是用的凸包算法。就是检测点是否在一个矩形中。算法分析:http://kevinew.blog.sohu.com/14735858.html有详细介绍,通过左转判定公式,只需判断 x1*y2-x2*y1 的正负值,为正说明 p1 到 p2 为左转. 其实就是判断一个向量到另一个向量是逆时针转还是顺时针转 ,如果点d在矩形边四条边的左边或都在四条边的右边,说明这个点在矩形内。。。
这个是我们以前的算法,后来,我把算法改成了分离轴算法,
这一系列的文章并不是我的原创,如果有同仁需要查看英文的原文的话,地址我曾经给出过,英文水平是有限的,如果有什么地方没有翻译清楚,可以向发邮件或者直接留言.
需要说明的是这里的范例都是基于OPENGL的代码。
2D多边形碰撞检测和反馈
介绍
这是一篇论证如何在2D动作游戏中执行碰撞检测的文章(Mario,宇宙入侵者等),为了保证它的高效性和精确性,碰撞检测是以多边形为基础的,而不是以sp