如何使用Swing在板上绘制tile时修复int舍入

时间:2016-01-11 20:29:53

标签: java swing

我目前正在尝试用java制作Puzzle-15。

我使用BufferedImage列表作为tile,并使用g2d在坐标(x,y)处绘制它们。 我计算每个瓷砖应该有多大:

int borderSize = 4;
int boardSize = 400 - 4*2;
int tilesPerRow = 40;
int tileSize = boardSize/tilesPerRow; // This will be floored to 9.

然后当图像被涂上时,它只涂上9 * 40的瓷砖。 360像素..所以剩下32个像素。如果你看一下我在下面添加的图像,你可以清楚地看到它是多么丑陋。

我尝试过使用affineTransform,但我无法使用它。

我希望你们其中一个人有个好主意:)

enter image description here

1 个答案:

答案 0 :(得分:0)

继承我的两种方法:

如果你想要x1为10而x2为9,总共为392

你有10 * x1 + 9 * x2 = 392

X1 + X2 = 40

你解决方程并获得x1和x2

B:

您将空间放大到3920,每块瓷砖有98像素:40 * 98

然后你重新缩放到392 - 这是一个统一的缩放10,缩放到图形系统