gpt4 book ai didi

php - 间隔一系列值,使它们不重叠

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:13 26 4
gpt4 key购买 nike

有几个问题非常接近这个主题,但没有一个真正帮助我。

我一直在编写一个图形库,我需要一种算法来垂直放置标签而不重叠。我已经坚持了几天,并设法将其提炼为最基本的功能:

如果给定一系列沿 Y 轴的标签位置,例如 1 1 2 3 5 6 9,以及上限和下限 100 分别,我需要一种方法来分隔值以输出 1 2 3 4 5 6 9

333467 应该是 234567 加权以接近原始坐标。

这也应该向后工作,如果值聚集在规模的上端,它们应该尽可能地分散(在溢出之前)

我不是在寻找明确的答案,但我希望获得有关如何解决此问题的帮助。我完全卡住了。

最后的思路是扫描所有标签以寻找可能的碰撞并将它们定位为一个大块,与所有 Y 坐标的中心对齐。但如果存在多组碰撞,这将不起作用。

编辑:要将此算法置于更大的背景下,请查看这两个 google chart API 饼图:

1) Top stacked labels

2) Bottom Stacked Labels

标签几乎是有弹性的,它们通过连接在一起并将整个质量移动到质量中心来避免碰撞。

最佳答案

通过插入到有序集合中使标签集唯一。将 y 轴上限和下限之间的差值除以集合中的元素数。这是你的间距增量。按顺序迭代集合,并在每个间距增量处放置一个标签。

你没有说需要保留一个比例......

关于php - 间隔一系列值,使它们不重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com