Javascript 将图像随机放置在a<;部门>;确保统一分配

Javascript 将图像随机放置在a<;部门>;确保统一分配,javascript,html,algorithm,Javascript,Html,Algorithm,我有一个尺寸为X×Y的矩形html div。假设这个div的中心位于X(c)和Y(c)。我有N个维度为x(I)和y(I)的图像。图像大小约为包含div的1/8,每个图像大小与其他图像大小不同 有什么好方法可以将这些图像放置在这个div中,以便它们均匀分布(但随机放置)在每个页面负载上。查看javascript实现 编辑:在达斯堪的纳维亚回答之后,我想我本可以把这个问题写得更好。我的意思是在每个页面加载上随机加载一系列图像,同时保持外观和感觉的平衡。您实际上并不是在寻找随机分布。真正的随机意味着它

我有一个尺寸为X×Y的矩形html div。假设这个div的中心位于X(c)和Y(c)。我有N个维度为x(I)和y(I)的图像。图像大小约为包含div的1/8,每个图像大小与其他图像大小不同

有什么好方法可以将这些图像放置在这个div中,以便它们均匀分布(但随机放置)在每个页面负载上。查看javascript实现


编辑:在达斯堪的纳维亚回答之后,我想我本可以把这个问题写得更好。我的意思是在每个页面加载上随机加载一系列图像,同时保持外观和感觉的平衡。

您实际上并不是在寻找随机分布。真正的随机意味着它的一部分是空的,而在另一个角落,其中两个重叠

如果你想进行科学研究,你可以使用随机生成的N点Voronoi图和Lloyd算法将这些点移动到更均匀的分布

如果你喜欢实用的方法,只需将它们放在随机点上,反复查看它们是否重叠,如果重叠,则将它们分开。对于8幅图像来说,这会比较慢,但仍然超出人类的感知范围。这就是我们发明的原因。 例如,尝试查看如何生成点。我会选择一些蒙特卡罗方法来生成2D中的随机点(使用谷歌)

还有一种非常简单的方法称为抖动,但它不像泊松和MC那样详细。您只需定义一个矩形点迷宫,然后随机“抖动”这些点:

for i = 1 .. m
    for j = 1 .. n
        ouput point [i * maze_size + rand(maze_size/2), 
                     j * maze_size + rand(maze_size/2)]

你所说的“均匀分布”是什么意思?是的,考虑到尺寸,它们肯定会重叠。你是对的,真正的随机间距可能不均匀。我希望每次都以随机序列加载这些图像,并保持位置的一致性,以使位置保持一定的平衡。我将编辑这个问题。谢谢,汉克斯,请阅读蒙特卡罗方法。你能告诉我m和n是什么吗?@papdel:例如,对于20幅图像,你可以制作迷宫5x4,所以你把m=5,n=4。但正如我所说,这是一种原始的方法。