在一个大矩形区域内紧凑排列很多小矩形
这个算法很常用,在游戏开发中,我们把小的纹理块,紧凑排列到一个大的纹理中。
我找了很久,曾经尝试使用各种关键词找这个算法,比如texture pack, rearrange rectangles etc.都没能找到我想要的。
这次在XNA的研究和学习中找到了一个Nuclex的库,这个库中的Nuclex.Game.Demo (x86)这个例子,就有三个经典的排列算法(C#)版本。
原来这个算法不是叫做“在一个大矩形区域内紧凑排列很多小矩形”,应该去搜索“rectangle packing”, "rectangle packer", "二维装箱算法"。你就能找到很多类似的算法了。
我找了很久,曾经尝试使用各种关键词找这个算法,比如texture pack, rearrange rectangles etc.都没能找到我想要的。
这次在XNA的研究和学习中找到了一个Nuclex的库,这个库中的Nuclex.Game.Demo (x86)这个例子,就有三个经典的排列算法(C#)版本。
原来这个算法不是叫做“在一个大矩形区域内紧凑排列很多小矩形”,应该去搜索“rectangle packing”, "rectangle packer", "二维装箱算法"。你就能找到很多类似的算法了。
http://www.douban.com/note/34766741/
http://enichan.darksiren.net/wordpress/?p=49
http://kossovsky.net/index.php/2009/07/cshar-rectangle-packing/
https://devel.nuclex.org/framework/browser/game/Nuclex.Game/trunk/Source/Packing
https://devel.nuclex.org/framework/browser/graphics/fonts/Nuclex.Fonts.Content.TrueTypeImporter/trunk/Source/SpriteFonts

浙公网安备 33010602011771号