java - 将一个正方形或长方形分解成大量随机大小的正方形或长方形

标签 java actionscript-3 algorithm bin

我试图将一个正方形或长方形分解成大量随机大小的正方形或长方形,这样它们就不会重叠。

好的,当然其他人也问过这个,我发现最好的话题是 How to fill a square with smaller squares/rectangles?

解决方案似乎是通过装箱或某种 TreeMap 。

但我正在寻找的是 Java、Javacript、actionscript 甚至 C 中的实际算法。

最佳答案

解决方案是尝试“分而治之”技术。在迭代 1 中,您有一个矩形。将矩形分成两个较小的矩形。下面是一种方法。假设矩形是 100x50。在 0-100(矩形的长度)之间选择一个随机数。假设随机数是 20。然后您可以将矩形分成两个较小的矩形,尺寸分别为 20x50 和 80x50。对于这 2 个新矩形,递归地应用相同的过程。(因此在迭代 2 中,您将有 4 个矩形)。这样做 n 次,你将有 2^n 个矩形。 此外,在每次迭代中,您可以随机选择是否应按每个矩形的长度(垂直)或宽度(水平)进行喷射。

希望对您有所帮助!

关于java - 将一个正方形或长方形分解成大量随机大小的正方形或长方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754307/

相关文章:

java - 如何在一个表达式中比较可为空的字符串和多个值?

javascript - 如何成功地将 AppWarp 集成到 ActionScript 3 代码中?

actionscript-3 - as3网页游戏如何处理资源? (嵌入/加载器)

algorithm - 从一组数字创建 1000、2000 等的总和

java - Android Activity 接口(interface)到 Fragments : try/catch blocks vs. instanceof 检查

java - 在数组中查找单个整数

actionscript-3 - ActionScript-处理套接字扩展上的安全错误事件

c - 如何在 C 语言中分隔括号之间的术语并列出它们

python - 编程新手,同样的结果不同的程序

java - Spring MVC 前端选择表单操作目标