我有一个矩形区域,我想要适应一定数量的sqaure项目。这是一个图像来帮助解决这个问题。网格视图高度/宽度公式
谁能帮我用公式推来计算项目的宽度/高度(BW/BH)?
我试过√(WxH/N)。
但是用W = 1400,H = 380,N = 16的例子给了我182.但是1400/182只给出7.7格宽和2.08高(乘以16我得到它,但我需要它们以适合在区域内)。
任何想法?
编辑:
越来越近,我认为我真正需要的是根据各地的长宽比以及如何制定出适合的项目一格就知道了。例如。下面254 X 133 16个箱是6由3
编辑:
现在我已经写了下面的代码工作出网格(JavaScript的)。问题在于它使用了跟踪和错误方法。
var W = 254,
H = 133,
N = 16,
Bh = H;
while(((Math.floor(W/Bh)) * (Math.floor(H/Bh))) < N){
Bh--;
}
alert('Columns: '+Math.floor(W/Bh)+', Rows: '+Math.floor(H/Bh)+', Bow width: '+(Bh));
请参阅http://jsfiddle.net/GVp4X/来测试代码。我仍然确定有更好的方法。
为什么7.7差?你为什么会认为一定数量的盒子总是能很好地适应任何矩形? – 2012-07-29 13:27:40
应该说,如果有剩余的空间,我不会感到困扰,那里几乎总会有,但我可以将盒子居中。 – Ben 2012-07-29 13:43:10