如何用较小的正方形/矩形填充正方形?

esa*_*sac 25 c# algorithm drawing

在我工作的办公室里,我们不允许在墙上画画,所以我决定画出正方形和长方形,为它们贴上一些漂亮的布料,并将它们排列在墙上.

我正在尝试编写一个方法,它将采用我的输入尺寸(9'x 8'8")和最小/最大尺寸(1'x 3',2',4'等)并生成随机模式正方形和矩形填充墙壁.我尝试手工完成这个,但我对我得到的布局感到不满意,每次我想"随机化"布局需要大约35分钟.

Bri*_*ian 14

一种解决方案是从x*y方块开始并随机地将方块合并在一起以形成矩形.你会想要给不同大小的方块赋予不同的权重,以防止算法结束时加载很小的矩形(即大矩形应该有更高的机会被选中进行合并直到它们变得太大).

  • 这实际上似乎是最简单的方法,让我更接近我正在寻找的东西.我也将使用关于做螺旋的想法,把第一个放在中心,然后从那里出去.如果我将"墙"分成一个网格并将其铺设,填入最小的空间,我想我最终将接近原始尺寸.即使这样,我也可以在短边上选择一个"网格线"并将所有接触它的矩形展开x英寸以使其填充意志.我会看看我是否可以编写一个程序来试试这个,如果可以的话,我会把它作为评论发布. (2认同)