这个问题在这里已经有了答案:
8年前关闭。
我有一个问题,我需要在一个圆圈内放置一堆不同大小的矩形。所有的矩形都必须适合圆形,而不会相互重叠且不会溢出圆形。
假设矩形可以放在圆内,如何开发一种算法将它们分布在圆内?
我能想到的就是一遍又一遍地随机分布矩形并测试是否满足条件(蛮力)。
最佳答案
正如其他人所提到的,最佳解决方案(比如最小面积或均匀分布)很可能是 NP-hard。尽管如此,根据您的需要,有一些很棒的算法可以将不同大小的矩形打包到其他矩形中。例如: Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites :
请注意,在上述过程中,边界矩形可以变化(我也不相信解决方案是最佳包围矩形)。您可以通过将圆分解为离散的矩形来近似圆。
虽然不是您正在寻找的完整解决方案,但我认为这可能是一个很好的第一步。
关于algorithm - 在圆圈内分布对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12728065/