gpt4 book ai didi

java - 均匀划分范围,留出空间和边距

转载 作者:行者123 更新时间:2023-12-01 15:38:58 24 4
gpt4 key购买 nike

我有一个点数组和一个面板。 getWidth() 基于面板。想象一下您手中的牌,因此 HAND_CARD_WIDTH 是非常不言自明的。该循环的目的是在面板上均匀地设置点,它确实做到了。然而,它允许卡片从面板中伸出,这使得它看起来非常糟糕。我想做的是,无论你手里有多少张牌,在面板的两侧都留出一小块空白。

这是代码

        int iteration = 1;
int limiter = getWidth();
int slice = (limiter/(handsize+1));

while (points.size() < handsize) {
int x = slice*(iteration++);
x -= HAND_CARD_WIDTH/2;
points.add(new Point(x, y));
}

基本上,我希望最左边的 x 至少为 20,最右边的最大为 getWidth() - 20 - HAND_CARD_WIDTH。我还希望卡片均匀分布...我只是想不出正确的方程式(遗憾的是达到这一点是一项壮举..)。

谢谢,根据回复(全部 2 个),我的做法是:

        if((int)points.get(0).getX() < margin){
int boost = Math.abs(margin - (int)points.get(0).getX());
slice = (boost*2)/handsize;
for(Point p : points){
p.x += boost;
boost -= slice;
}
}

最佳答案

不确定我是否理解你的布局,但我认为它是这样的:

|margin|space|card|space|card|space|margin|

|margin|space|card|space|margin|

因此,空格数比卡片数多 1,总宽度是组件宽度减去边距。 componentWidth = numCards x cardWidth + (numCards + 1) x spaceWidth 现在很容易计算出所需的空间,即 (componentWidth - numCards x cardWidth)/(numCards + 1)> 因此卡片的左侧位置为leftMargin + spaceWidth x cardNum + cardWidth x (cardNum - 1)

当空间为负数时必须小心,然后你必须计算卡片必须重叠多少。

关于java - 均匀划分范围,留出空间和边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397236/

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