我正在使用JavaScript创建标签云。它需要一个无序的'标签'列表,然后从div的最中心点(高斯分布)随机分配它们。
我遇到的麻烦是找到一个有效的指标来确定我的任何标签是否重叠。
最终我想出了两种方法:
(1)定位每个标签,考虑已经放置的标签的位置。 (我不确定我是怎么做到这一点的,但它似乎不是最优雅的解决方案,所以无论如何)。
(2)将每个项目的绝对位置(上/下)和宽度和高度存储在一个数组中,随机生成一个位置;检查重叠,然后放置或相应地随机重新生成一个位置。
由于这听起来像游戏开发中的常见问题,我想我会发布它,看看是否有人知道最佳实践方法。
编辑: 现在我想要确定每个列表项的中心点和到任何角落的距离,然后比较2个中心点之间的距离。尽管如此,仍然会提出进一步的建议。