2016-12-12 69 views
0

我想找到一個容器的最佳dimmensions。找到容器的大小x行,y列定義maxWidth和定義的maxHeight

我有這些價值觀的工作:

  • 窗口最大寬度
  • 窗口最大高度
  • 項目,以適應在每列
  • 項目,以適應各行中

每件物品都必須是正方形,並且容器必須完全適合物品。我還需要容器儘可能大,而不會超過x方向上的最大寬度和y方向上的最大高度。

我當前的代碼,(這並不真正的工作),看起來是這樣的:

[dWidth, dHeight] = [window.innerWidth, window.innerHeight]; 
// Adjust sizes, for the tiles 

var tiles = (width + height)/2; 

dSize = (dWidth/tiles) > (dHeight/tiles) ? 
    (dHeight/tiles) : (dWidth/tiles); 

dSize |= 0, 

dWidth = width * dSize, 
dHeight = height * dSize, 
  • dWidth是我要創建
  • dHeight容器的寬度是容器的高度我想創建
  • width是我的列數
  • height是我的行數
  • dSize是每個項目的高度和寬度。

不需要擔心奇怪的dWidth任務,這是暫時的。

無需擔心dSize |= 0,我不會得到負面的價值。

無需擔心以逗號結尾的代碼段,接下來的行只是將dWidthdHeight分配給畫布。

回答

1

您可水平放置的正方形數量爲dWidth/width,您可垂直放置的數量爲dHeight/height。因此,你可以計算出,將適合像這樣的最大數量:

var dSize = Math.min(dWidth/width, dHeight/height);

如果你需要一個絕對值,繼續前進,在結果使用Math.floor

+0

現在進行測試 – Eirik