2010-10-28 25 views
0

我有一個網格的單元格(在開始時爲空)以及矩形或正方形的塊的集合,其大小是單元的倍數(例如,塊可能3個細胞爲2個細胞)。我不會提前知道所有的街區,但必須在到達時放置它們。在任何人想知道的情況下,這與將大量較小的位圖放在一個較大的位圖上相關,所有位圖的大小都是32的倍數。網格上的一組塊的空間組織

我一直在想我可以簡單地遍歷網格,尋找一個合適的地方,如果我找到一個地方,把它放在那裏。我也可以有一個四叉樹來跟蹤哪些網格塊被佔用,所以我不必在已分配的單元格中迭代很多。

我試過Google搜索的例子和解決方案,但由於英語不是我的母語,我有麻煩制定我想要搜索的東西。

所以我的問題是什麼算法和數據結構用於這類問題?

回答

2

您正在搜索稱爲「bin packing」(請參閱​​http://en.wikipedia.org/wiki/Bin_packing_problem)的信息,更精確地說,該問題的2D版本,甚至更具體地說,「紋理包裝」。

你可能想看看有:https://gamedev.stackexchange.com/questions/2829/texture-packing-algorithm(幾種算法和數據結構引用)

如果你真的動機,你也可以看看關於這一主題的文章!

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.98.3502&rep=rep1&type=pdf

http://citeseerx.ist.psu.edu/search?q=texture+packing&submit=Search&sort=rel