所以给出一组文章什么算法可以使用最好的布局。最好的定义可能是最有效的布局(如电路设计)或最美观的布局。
任何人知道任何这样的算法?还是这个问题的基本方法?这是否属于“计算几何”?
解决方法 基于 his answer the blog post linked to by Jason Moore的截图和理论,我会说,有十个预定义的块大小被放置到其中。基于各种不同的参数,大量的内容是基于各种不同的参数 – 许多人转发或喜欢的东西可能被认为是更高的优先级,因此可以获得更大的框,并且具有图片,视频或大量文本的项目也可以被优先考虑。这些盒子(最好是经过深思熟虑的尺寸)然后被最佳地包装在页面上(尽管这不是一个简单的问题,即使Flipbook似乎也失败了,原来链接的博客文章中的 second render of the Facebook stream中的奇怪的空格就证明了这一点)。从rendered Facebook feed的外观,Flipbook至少具有以下预定义的框尺寸(以全宽/高的百分比给出的宽度和高度):
Designation | WIDth | Height | Example ---------------------------------------------------------------full page | 100% | 100% | #12 2/3 page | 100% | 67% | #1 1/3 note | 50% | 33% | #3,#11 1/9 quote | 50% | 11% | #2,#8,#10,#15,#17,#18,#221/2 note | 50% | 50% | #16,#19 2/3 note | 50% | 67% | ?
其中一些具有相当明显的分组模式(例如,1/9引号总是一次叠加三个,例如形成一个1/3音符相同大小的块),而其他可以更自由地打包。 rendered Twitter feed的类似分析显示了一些额外的盒子。
概要
因此,总而言之,算法似乎相当简单。从几个预定义(敏感选择)框大小开始。提供新的订阅源时,请执行以下 *** 作:
>分配每个项目一个大小取决于某些属性(如受欢迎程度,包含图像等)的框。
>最佳地包装盒子(这实际上是bin packing problem,np-hard问题,似乎没有有效的算法;贪心的近似算法会做的很好)
这里应强调的是步骤1,以及制定预定义的方框。
要澄清:我在这里谈到的预定义的框尺寸是为纵向定义的。对于景观,将使用不同的盒子大小,如the picture in the question所示。
总结以上是内存溢出为你收集整理的Flipboard的布局算法全部内容,希望文章能够帮你解决Flipboard的布局算法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)