最优地在网格上找到空白空间

时间:2018-04-17 18:30:12

标签: optimization logic spacing packing

我希望有人可以帮助我优化我在当前项目中处理的算法。这是用C#编码的,但更多的是逻辑问题。

我有一个二维的bool数组(一个网格),它充当了矩形的容器。当矩形放置在网格上时,它会将bool切换为true。

空格=假

占用空间=真

现在出现问题。如何找到距离(x,y)最近的空位置,其中宽度(w)和高度(h)的矩形可以适合而不重叠占用的空间?

我做了一个非常天真的基线实现,其工作原理如下:

WHILE point not found
  SET g to nearest unchecked grid point
  SET allempty to true

  FOR EACH x value in rect (i)
     FOR EACH y value in rect (j)
       IF gridpoint[i, j] is occupied
          SET allempty to false;
       END IF
     END FOR
  END FOR

  IF allempty
     RETURN g as legal location
  END IF
END WHILE

但我知道还有其他更有效的方法来执行此操作。任何人都能指出一种可以更有效地做到这一点的算法吗?

感谢您的时间

0 个答案:

没有答案