如何将一个大矩形随机分割成N个小矩形?

0 投票
1 回答
1413 浏览
提问于 2025-04-18 06:37

如何把一个大矩形分成N个看起来随机的小矩形?我需要为不同的n值生成几种分割方式。有没有适合C++的Boost库或者Python的相关库可以用?

1 个回答

3

一个矩形可以通过画一条水平线或垂直线来分成两个矩形。如果再把其中一个矩形继续分开,就会变成三个矩形。这样继续下去,直到你得到N个矩形。为了让结果更好,有一些限制需要注意:

  • 如果矩形的高度低于某个标准,就不要用水平线来分割。
  • 如果矩形的宽度低于某个标准,就不要用垂直线来分割。
  • 分割时尽量选择四分之一、三分之一或二分之一的方式,避免出现90/10这样的分割。
  • 保持一个按面积排序的矩形列表,始终选择面积最大的矩形进行分割。

撰写回答