代码之家  ›  专栏  ›  技术社区  ›  eflorico

放置盒子,如Expos_

  •  0
  • eflorico  · 技术社区  · 15 年前

    有人知道如何找到最适合某个区域的矩形吗?矩形可以按一定的比例放大到一定的限度,但它们应该保持一定的比例。 我基本上想重建Mac OS的“Expos”(曝光): Picture

    谢谢, 狼

    1 回复  |  直到 15 年前
        1
  •  1
  •   supo    15 年前

    这个问题是NP困难的,但这只适用于最优解。我想你真正想要的是一个看起来不错的解决方案。

    所以我建议寻找使数据看起来很好的算法。有一次我想为Deepzoom作曲器布局图片,我试图回收一个基于图形绘制力交互的算法。 http://en.wikipedia.org/wiki/Force-based_algorithms

    即使对于600个矩形,它也能很好地工作,你只需要玩弄模拟的细节就可以了。

    • 如何计算距离?
    • 你用什么函数来表示吸引力和排斥力?
    • 你要接受多少重叠?

    唯一一个我不能完全解决的问题是,矩形形成了一个圆形,而不是一个大矩形,这在你模拟物理时是很自然的。但是你可以用小心放置的辅助力源来解决这个问题。