将标签云拟合到可用空间

Ken*_*eck 5 user-interface tag-cloud

鉴于单词及其频率和屏幕空间区域,将标签云安装到空间的好方法是什么?我能想到要操纵的两个变量是:

  • 字体大小(绝对和渐变)
  • 单词数量

我能想到的一切方法都需要迭代,比如设置单词数量的上限然后使用字体大小的二进制搜索,直到单词恰好适合该区域.我宁愿有一个分析解决方案.

我的情况的一个复杂因素是云可调整大小,因此算法需要能够合理地处理100x100像素或1000x1000像素.

编辑:我应该说这是一个富客户端应用程序,而不是Web(因此可能会调整大小).此外,我希望听到一些经验,比如"没有人在标签云中看到超过100个单词,所以不要费心去展示它们".

Spa*_*arr 0

这听起来像背包问题,但是是倒置的并且有更多的变量。没有简单的完整解决方案,但您很可能能够找到在大多数情况下接近最佳解决方案的启发式算法。

PS:只有使用以像素为单位的字体大小才能可靠地完成这项工作。在良好的网页设计中,以像素为单位测量的字体大小是一件坏事(TM)。