用于检测矩形形状是否与矩形边界相交的快速算法

时间:2014-06-18 00:17:06

标签: algorithm collision-detection 2d-games

想象一下,你周围有一个带栅栏的院子,看起来像这样:

 ______  ________
|      |_|      _|
|              |_
|        _    ___|
|__     |_|  |  
   |         |__
___|      _     |
|        | |    |_
|________| |______|

Don't ask why it's a weird shape, it's your yard, I didn't make it. 

..中间的那个小盒子是一些任意的方形物体。如果该物体朝向院子边缘向任何方向移动,您如何检测物体何时与栅栏相撞?

如果您的院子大了几千倍并且有许多边缘要跟踪,该怎么办?那你怎么能有效地解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

将院子视为一个大的矩形,有几个"负面"正方形被移除。

将这些负方格的位置存储在quad tree

要检查碰撞,请在树上探测与对象相邻的四个方块。

检测操作的时间复杂度取决于四叉树变体的选择,但可以预期负方格数的对数时间。