2017-07-18 73 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值直到不等式成爲真