1
我一直堅持這個問題幾天,我需要你的幫助。查找具有元素數量的行數/列數
我有一個動態數量的元素放入網格。
我有網格的寬度和高度。
我有網格中元素的比例。
我需要找到構建網格所需的行數和列數,以使網格儘可能地充滿。
任何想法如何計算?
我一直堅持這個問題幾天,我需要你的幫助。查找具有元素數量的行數/列數
我有一個動態數量的元素放入網格。
我有網格的寬度和高度。
我有網格中元素的比例。
我需要找到構建網格所需的行數和列數,以使網格儘可能地充滿。
任何想法如何計算?
好吧,直觀地看,如果你的寬度w
和高度h
是相同的,最好的方法是取你的元素數的平方根n
,你就完成了!
例如:w = h = 5
,n = 121 => x = sqrt(n) = sqrt(121) = 11
so 11
行和列。
所以考慮到w
和h
之間的比例,我們現在試圖找到x
列和y
行以相同的比例,即:
x * y = x * (x * h/w) = n => x = sqrt(n * w/h)
例子:w = 7, h = 5
,n = 180 => x = sqrt(180 * 7/5) = sqrt(252) ~= 15.87
四捨五入到16
,並y = x * h/w ~= 15.87 * 5/7 ~= 11.33
舍入爲11
。我們最終得到了16列和11行(176 romms)180個元素,這是正確的,並保留了比例。這可以通過更加註意圓角來改善。
你說的比例是多少?你能舉一個寬度,高度和比例以及預期結果的例子嗎? – Emmanuel 2011-06-06 14:34:34