我喜欢数学,但我一直在努力解决这个问题。
我正在尝试用正方形填充 HTML5 画布中的非正方形空间。我知道容器的宽度(W)和高度(H)。而且我知道要使用的方格数(n)
但是正方形的大小是我们试图弄清楚的。以及如何绘制它。正方形应该足够大以覆盖所有空间,但不一定是 sqrt(n) / sqrt(n)。它应该尽可能多地填充空间。
关于在哪里寻找解决这个问题的任何想法?
谢谢!
第一个估计是用面积除以W*H
正方形的数量n
。这会给你每个正方形的面积,取那个面积的平方根就会给你它的长度。
但这仅适用于矩形可以被这些正方形完全填充的情况。如果您可能需要超出矩形的重叠部分,那么您可能需要调整长度或正方形的数量。所以假设你想用不超过正方形的矩形覆盖你的矩形(即填充一个稍大的矩形),n
在这些情况下选择尽可能小的正方形。进行上述计算。假设这告诉您需要 3.75 行和 6.23 列的正方形。然后你知道更多的行或列将需要更多的n
正方形。所以你必须假设 3 行和 6 列。您可以计算 和 的平方长度,H/3
并W/6
取其中较大的一个。
您的情况通常是无法解决的。
例如,考虑一个 2 x 3 的区域。您不能在此区域中放置 5 或 7 个方格。