0

我有一个在JPanel. 如何获取每个图块的直角坐标?

4

1 回答 1

1

“基本”方法可能是做类似...

int tileWidth = 30;
int tileHeight = 30;
// Coordinates in the physical world, like a mouse point for example...
int x = ...;
int y = ...;

int col = (int)Math.floor(x / (double)tileWidth);
int row = (int)Math.floor(y / (double)tileHeight);

这将根据物理 x/y 坐标返回每个图块的虚拟网格 x/y 位置

然后,您可以使用类似...

 int tileX = col * tileWidth;
 int tileY = row * tileHeight;

平铺矩形然后变为tileXx tileYx tileWidthxtileHeight

现在,虽然这有效。更好的解决方案是使用类似的东西java.awt.Rectangle并维护List它们中的一个,每个都代表现实世界中的一个单独的图块。

然后,您可以使用Rectangle#contains来确定给定的图块是否包含您要查找的坐标。

这样做的另一个好处是可以使用和/或Rectangle打印Graphics2D#drawGraphics2D#fill

于 2014-03-20T04:12:41.207 回答