这是问题所在。我有大小为 1 的矩形画布。所以它的坐标系为(0.0 ... 1.0 - x 和 0.0 ... 1.0 - y)。
我也有一些瓷砖。瓷砖也是矩形。它们有不同的尺寸,瓷砖的数量是一个变量。
我想在矩形画布中堆叠瓷砖,从 0.0 到 1.0(从左到右,从上到下):
1)瓷砖必须适合画布(但要尽可能多地填充空间)
2) 必须缩放图块(如果它们不适合),每个图块应按相同的量缩放(它们必须保持相同的比例)。
3)想象你手里拿着这个“瓷砖”,你把它们一个接一个地放在这个画布上
4)它几乎像“TreeMap算法”但是 - 瓷砖的形状必须相同(矩形),我不需要填充画布的所有空间
有没有人可以向我展示任何类似 C 语言(C、C++、Java、C#)的算法?
*我试过这个。
1)我计算了瓷砖的面积,然后我计算了瓷砖面积的总和(例如:我有两个瓷砖,一个面积为 2,另一个面积为 1,这意味着我的总和为 3)
2)然后我计算每个瓷砖在“总面积”中的“比例”(例如:2/3和1/3)
3) 然后通过 Math.sqrt(x) 计算矩形块的大小(例如:Math.sqrt(2/3))
4)然后一张一张地画瓷砖……
但这并不总是有效。有时我会让瓷砖脱离画布..*