【发布时间】:2018-03-18 04:15:43
【问题描述】:
对于我正在编写的游戏,我在非方形地图上使用四叉树。四叉树用于在给定的最大值内查找相邻单元以进行碰撞检测、要攻击的敌人、最近的基地等。半径(圆)。
我想知道的是,如果使用由矩形而不是正方形组成的四叉树存在性能问题?不是将正方形地图划分为正方形,而是将矩形地图划分为四叉树中大小相等的矩形。
矩形地图上的方形四叉树:将创建一个四叉树填充整个地图,但左侧或底部有空白/未使用区域,具体取决于地图的方向(水平与垂直) .这将需要更多的填充方块 (?) 并且可能在搜索期间也对性能产生影响?
与矩形地图匹配的矩形四叉树:四叉树将完美地填充地图。但是,这样做会影响性能吗?鉴于我们搜索使用的半径适合正方形而不是矩形,它可能会导致搜索速度变慢?此外,宽度和高度都必须存储在每个四叉树节点中,因为它们是非正方形的。
问题: 将四叉树转换为正方形更好吗?我认为使用矩形小队可能没问题,但我不确定?
【问题讨论】:
-
只要你能很容易地计算出边界就没有关系了,也就是说,当一个对象处于某种形状时。这对于任何矩形(包括正方形)都是微不足道的。圆圈也很容易(但用圆圈覆盖整个地图并不容易)。三角形也很可行(显卡在这方面进行了超级优化)。矩形形状的好处是您可以轻松地将它们划分为其他矩形,您需要获得
log n。
标签: performance quadtree