本文共 405 字,大约阅读时间需要 1 分钟。
WordCloud基本算法:
关于wordcloud的用处我就不多说了,在这里我假定一个前提,然后在这个前提下来生成一个wordcloud。
1:要求生成的wordcloud占用的面积越小越好
2:要求尽量是矩形
下面是我的大概算法:
1:找到文本中占比重最大的字体,设置一个基础字体。其余的字体比例根据该字体来计算(关于字体的大小和颜色都不是我本文的重点)
2:在可绘制区域随机放入比重最大的字体,保存当前的绘制区域。
3:检测屏幕区域中有字体的位置,把对应的像素标识为true
4:取下一个word,计算当前word的width和height,先在之前绘制区域内找是否有足够的空间容纳当前word的width和height(这个检测需要一个算法,待计,以后补充上来),如果有则放入,如果没有则在当前绘制区域的上方或者下方或者左方或者右侧来放入。放入后更新当前的绘制区域
5:重复4,直到取完
上一个效果图:
转载地址:http://foini.baihongyu.com/