Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 基于外部分区尺寸确定内部分区尺寸的公式?_Math_Html_Pixels - Fatal编程技术网

Math 基于外部分区尺寸确定内部分区尺寸的公式?

Math 基于外部分区尺寸确定内部分区尺寸的公式?,math,html,pixels,Math,Html,Pixels,假设我有一个容器div,宽765px,高530px 我想用30个较小的div动态填充尽可能多的div。因为container div是一个矩形,所以filling div也应该是一个矩形。基本上,我不想要正方形,我想要填充空间 公式是什么 谢谢 使用30,您可以创建一个5乘6的网格,因此将高度除以6,将宽度除以5,或将高度除以5,将宽度除以6。如果div必须有整数大小,您将无法用6填充宽度或高度,因为两者都不能被6整除…因此要找到每个片段的宽度和高度,其中N是您拥有的片段数(本例中为30),H是

假设我有一个容器div,宽765px,高530px

我想用30个较小的div动态填充尽可能多的div。因为container div是一个矩形,所以filling div也应该是一个矩形。基本上,我不想要正方形,我想要填充空间

公式是什么


谢谢

使用30,您可以创建一个5乘6的网格,因此将高度除以6,将宽度除以5,或将高度除以5,将宽度除以6。如果div必须有整数大小,您将无法用6填充宽度或高度,因为两者都不能被6整除…

因此要找到每个片段的宽度和高度,其中N是您拥有的片段数(本例中为30),H是要填充的框的高度(本例中为530),W是要填充的框的宽度(本例中为765)

导致

eachPieceWidth = floor(765/ceil(sqrt(30)))
eachPieceHeight = floor(530/(30/ceil(sqrt(30)))
eachPieceWidth = 127
eachPieceHeight = 106
导致

eachPieceWidth = floor(765/ceil(sqrt(30)))
eachPieceHeight = floor(530/(30/ceil(sqrt(30)))
eachPieceWidth = 127
eachPieceHeight = 106

让我看看我是否能为你详述一下你的问题

您有一个宽度
w
和高度
h
的容器,您想用大小相等的矩形填充它。您想找到
x
y
,这样
x*y=n
,但您想
w/x
近似等于
h/y
,这样您的小矩形就与尽可能的方形(因为如果它们是
1xn
切片,那可能是非常无用的),并且您希望它们在美学上令人愉悦

首先,如果
n
是一个素数,你要么需要放松你的假设,要么你会得到一堆薄片。否则,我会迭代
n
的所有因子,对于每个因子
x
计算
y=n/x
,然后计算
w/x
h/y
选择
|w/x-h/y |
最小的一对,您将拥有最多可以放入该容器的网格中的“方形”div

<> > <代码> W>代码> 765和<代码> h < /代码>=530。30的因素是1, 2, 3、5, 6, 10、15, 30。我们考虑下面的对,这将导致以下div大小(舍入):

  • (1,30)-(765,17)
  • (2,15)-(382,35)
  • (3,10)-(255,53)
  • (5,6)-(153,88)
  • (6,5)-(127106)
  • (10,3)-(76176)
  • (15,2)-(51265)
  • (30,1)-(25530)

在这种情况下,对的最小差异
(127106)
与您使用公式得出的结果相同,但您可以想象,如果您有一个又长又薄的容器,或者出于某种原因,您更喜欢具有不同纵横比的子div,而不是正方形。在这种情况下,您会选择最合适的除法。

小30的尺寸是多少div?这是我需要的公式。那30个div应该多大才能填充主空间?30个div应该都有相同的大小?是的。我想用div填充空间,就像你填充棋盘一样。除了我的棋盘不是正方形。如果我的棋盘是矩形,我的瓷砖应该是矩形。如果你假设外部尺寸接近square。但是,我详细阐述了使实际的子div本身尽可能接近square,这可能更重要。例如,如果您有一个40x800的框,并且您想用20个div填充它,那么您可能需要1x20网格,而不是4x5网格。