我的应用需要显示几个按钮,没有重叠,最好不要滚动或缩放。它们必须足够大才能用手指拨动并阅读文本。按钮宽度取决于其文本长度,高度是恒定的。屏幕尺寸已知。
每个按钮代表一种我知道一些营养信息的食物。我将计算蛋白质:碳水化合物比率和脂肪含量,范围从0%到100%。
我想将按钮靠近反映其营养成分的位置:例如顶部富含蛋白质,底部为carby,右侧为脂肪,左侧为瘦。所以蛋糕会在右下方,肉类会在最上面的某个地方。
通常,会有重叠,我必须将它们彼此推开。
难题是发明一种推动算法。按优先顺序排列的需求是:
1)可读且可戳的大小,没有重叠。 2)不需要滚动或缩放,虽然它会在有这么多按钮的情况下发生,即使我们不在乎它们在哪里,它们也永远不会适合屏幕。 3)根据了解食物的营养成分,按钮应该靠近用户看的位置。
顺便说一下,我在智能手机上使用JS,而不是prolog等。
(有一些看似愚蠢,但没有解决方案。一个是关于对角线杆,另一个只是提倡将它扔在游戏引擎上,但大多数都没有答案。)