注意:这不适用于网页,它是一个包含一组图像的简单程序,会随机选取一些图像并在屏幕上显示。想象一下,使用图像编辑器并在画布上手动定位导入的图像。
我很难想出一种在固定尺寸的屏幕上定位一组任意图像的方法(它只是一个窗口)
例如,如果我有一个图像,我可能只是将它放在屏幕的中心。
|
如果我有两张图片,我会尝试将它们放在屏幕的中央,然后将它们水平展开,使它们看起来相对于彼此以及屏幕居中。
| |
但如果一张图像比另外两幅图像大呢?我可能有像
这样的东西|-----| | |
同样,也许我有两个较大的和两个较小的
|-----| |-----| | |
这样大的一个出现在“后面”而小的出现在前面。
一些图像最终会覆盖其他图像的一部分是不可避免的,但我能做的最好的就是尽量使其尽可能有序。
我可以快速获取要绘制的每个图像对象的尺寸,并且绘制的图像数量有限制(从1到8,包括在内)。
可以在屏幕上的任何位置绘制图像,如果图像的任何部分位于屏幕之外,那么这些部分将被切断。所有图像的尺寸都小于屏幕尺寸,通常不大于整个屏幕的1/4。
解决此问题的好方法是什么?即使处理基本情况,例如有两个图像(可能有不同大小),也已经非常混乱了。
答案 0 :(得分:1)
您可以将其视为2D bin packing problem,它将以“紧凑”的方式优化非重叠矩形,但不会考虑美学。
如果你想自己滚动,你可以尝试将所有图像放在画布上的网格上,中心到中心的间距足够大,没有图像重叠。然后将图像“压扁”在一起,从左到右,从上到下,以减少空白量。
答案 1 :(得分:0)
100%宽度和高度的html表(禁用溢出)是一个很好的起点IMO - 在第一次迭代中只需按照大小排序图片并制作8个模板,如:
<tr><td><img></td></tr>
<tr><td><img></td><td><img></td></tr>
然后找到一些丑陋的案例并为它们制定特殊规则(例如3个垂直图像制作1行,......)