2017-07-18 66 views
-4

我有麻烦需要你的帮助:查找大小,以填补区域

我工作的一个程序,显示平铺模式n视频(又名,视频墙,c列和r行)。该n是任意的,视频有相同的尺寸(W x H),我们有W/H比,墙的大小是固定的,我怎么能得到的crWHn变化最好的一套?最佳设置定义为:WH是最大值,视频填充墙的最大面积。

我看了包装问题,但仍然无法解决上面的问题,有人可以帮助我吗?非常感谢你!

+0

如何知道墙的尺寸可以解决这个问题? –

+0

这将需要一个C程序很少的时间来运行一个循环来制定最佳安排。 “1”到“n”每行中的视频数量。 –

回答

1

据我明白,要放置n矩形固定C=W/H比上壁具有给定WidthHeight

设矩形高度是h(还未知),宽度为w = C * H

网格中的每一行包含

nr = Floor(Width/(C * h)) // rounding down 

每列包含

nc = Floor(Height/h) 

写不平等

n <= nc * nr 
n <= Floor(Width/(C * h)) * Floor(Height/h) 

,解决它(找到最大可能h值)未知^ h

有关参数h实际值可能会发现越来越初始近似值:

h0 = Ceil(Sqrt(Width * Height/(n * C))) 

并递减h值直到不等式成为真