我喜欢数学,但我已经在这一段时间里不停地敲打着它。
我正在尝试使用带有正方形的HTML5画布填充非方形空间。我知道容器宽度(W)和高度(H)。我知道要使用的方格数(n)
但广场的大小正是试图弄清楚的。以及如何绘制它。正方形应该足够大以覆盖所有空间,但它不必是sqrt(n)/ sqrt(n)。它应该填充尽可能多的空间。
关于在哪里寻求解决这个问题的想法?
谢谢!
答案 0 :(得分:2)
第一个估算值是将区域W*H
除以广场数n
。这将为您提供每个方格的面积,并取该区域的平方根将给出它的长度。
但这仅适用于矩形可以由这些方块精确填充的情况。如果您可能需要在矩形之外进行一些重叠,则可能需要调整长度或方块数。因此,假设您希望覆盖您的矩形(即填充稍大的矩形),不超过n
个方块,在这些情况下选择尽可能小的方块。做上面的计算。假设它告诉您需要3.75行和6.23列正方形。然后,您知道更多行或列将需要超过n
个方块。所以你必须假设3行和6列。您可以计算H/3
和W/6
的平方长度,并取其中较大的一些。
答案 1 :(得分:1)
您的方案通常无法解决。
例如,考虑2 x 3区域。你不能在这个区域放置5或7个方格。