如何将一个大矩形随机分割成N个小矩形?
如何把一个大矩形分成N个看起来随机的小矩形?我需要为不同的n值生成几种分割方式。有没有适合C++的Boost库或者Python的相关库可以用?
1 个回答
3
一个矩形可以通过画一条水平线或垂直线来分成两个矩形。如果再把其中一个矩形继续分开,就会变成三个矩形。这样继续下去,直到你得到N个矩形。为了让结果更好,有一些限制需要注意:
- 如果矩形的高度低于某个标准,就不要用水平线来分割。
- 如果矩形的宽度低于某个标准,就不要用垂直线来分割。
- 分割时尽量选择四分之一、三分之一或二分之一的方式,避免出现90/10这样的分割。
- 保持一个按面积排序的矩形列表,始终选择面积最大的矩形进行分割。