我有一個點陣列和一個面板。 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;
}
}
謝謝。我會試着圍繞你剛纔所說的話把自己的頭圍繞起來。我實際上並不需要計算卡片重疊的方式,因爲它們是從左到右依次排列的,所以只要它們沒有堆積起來,它就已經出來了(謝天謝地) – Jeremy
你也沒錯,我想要卡片正確地居中,基本上我希望卡在中間擠在一起,並儘可能多地留出邊距。 – Jeremy