Iphone 一种网格化布局不同尺寸图像的算法

Iphone 一种网格化布局不同尺寸图像的算法,iphone,objective-c,algorithm,layout,Iphone,Objective C,Algorithm,Layout,我正在尝试将图像放在一个网格中,其中一些特征图像的大小是网格的4倍。 我肯定这是一个众所周知的布局算法,但我不知道它叫什么 我正在寻找的效果类似于下面显示的屏幕截图。谁能给我指出正确的方向吗 已更新 更具体地说,让我们将其限制为仅存在示例中所示的两种尺寸的情况。可以有无限多个项目,它们之间有一个固定的边距。希望这能澄清问题 有一种著名的布局算法,称为,对于某些图像大小为4倍的特定问题来说,这种算法可能有点过于通用,但仍然适用,特别是当您决定使用任意大小的图像时 有几种不同的矩形树形图算法,其中任

我正在尝试将图像放在一个网格中,其中一些特征图像的大小是网格的4倍。 我肯定这是一个众所周知的布局算法,但我不知道它叫什么

我正在寻找的效果类似于下面显示的屏幕截图。谁能给我指出正确的方向吗

已更新 更具体地说,让我们将其限制为仅存在示例中所示的两种尺寸的情况。可以有无限多个项目,它们之间有一个固定的边距。希望这能澄清问题


有一种著名的布局算法,称为,对于某些图像大小为4倍的特定问题来说,这种算法可能有点过于通用,但仍然适用,特别是当您决定使用任意大小的图像时


有几种不同的矩形树形图算法,其中任何一种都可以用来可视化照片,它使用条带算法来布局照片,每个尺寸与照片的评级成比例。

这个问题可以通过热图或树形图来解决。热图通常使用空间填充曲线。热图将2d复杂度降低为1d复杂度。热图看起来像四叉树。你想看看Nick的hilbert曲线四叉树空间索引博客。

它们都是图片中相同基本大小的倍数,还是图像大小可以是任意的?如果大小是任意的,这听起来类似于NP难的2D装箱问题。谷歌搜索一些近似算法。如果您有任意数量的图像,并且它们都是相同大小的倍数,那么一个简单的贪婪算法就可以工作。只需将每个图像放置在下一个可用插槽中,您将获得一个没有渐进浪费空间的布局。当然,这个问题写下来可能太模糊了,无法明确回答。您需要对每个图像的大小、图像的数量、所需的间距和显示窗口的大小进行一些说明。在添加这些信息之后,您需要说明您想要优化的内容。不知道你想要什么,这是不合适的。