这个问题是关于任何代码或指针,这些代码或指针有助于在受约束且定义明确的网格内“接近”故事的布局。
这些是基础知识和输入:
- 整个对象被称为报纸。它有一组故事(文本长度不同)
- 每个故事可以有一个与之关联的图像,也可以没有
- 报纸会自动分成 4 栏。文本从左上到右下,每列向下流动
- 图像可以放置到固定位置 - 左上、中上、右上、左中、中、右中、左下、中下、右下
- 放置图像时,它可以跨越 1 到 3 列。根据设置的跨度自动调整高度以适应比例。
- 所有实际的布局工作(以及围绕文本流动的图像)都已完成 - 算法所需的只是决策制定
总的问题是将故事以一种有趣的方式放置在固定的布局中,使图片靠近与之相关的故事,并表现出有趣的位置和跨度变化,从而使印刷的阅读体验变得有趣和美观.
这是算法所需的工作:
- 当一个带有图片的故事被放到报纸上时,图片的至少一个边缘必须触及它所涉及的故事。
- 我们需要决定是否对故事进行重新排序,以便图像密度不会在一个区域过于偏颇,例如前 4 页有很多图片,而报纸的其余部分只是文字。
- 如果我们选择重新排序和打乱故事,那么解决这个放置问题的最佳方法是什么?
一般来说,我不确定这是否属于装箱问题——从某种意义上说,故事可以重新排序以最小化空白;因为我们需要将图像放置在故事“附近”。
任何有关如何解决此问题的指针或有助于解决类似问题的代码都将受到赞赏。