我试图将一个正方形或矩形分解为大量随机大小的正方形或矩形,以便没有一个重叠。
好吧,当然其他人也问过这个问题,我发现最好的线程是如何用较小的正方形/矩形填充正方形?
解决方案似乎是通过装箱或某种树形图。
但我正在寻找的是 Java、Javacript、actionscript 甚至 C 中的实际算法。
解决方案是尝试“分而治之”技术。在迭代 1 中,您有一个矩形。将矩形分成两个较小的矩形。一种方法如下。假设矩形是 100x50 。选择一个 0-100 之间的随机数(矩形的长度)。假设随机数是 20 。然后你可以将矩形分成两个较小的,尺寸分别为 20x50 和 80x50 。对于这 2 个新矩形,递归地应用相同的过程。(因此在迭代 2 中,您将有 4 个矩形)。这样做 n 次,你将得到 2^n 个矩形。
此外,在每次迭代中,您可以随机选择是否应根据每个矩形的长度(垂直)或宽度(水平)来完成吐痰。
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)