在网格上绘制形状

时间:2013-03-29 13:55:46

标签: java java-2d

我需要在网格上绘制随机形状,例如线条正方形等。这部分我能够做到。我的问题是我绘制的线的起点和终点落在网格单元格的任何位置。我希望他们只在交叉点。网格中的一个单元格是10x10像素网格。我是否必须编写一个算法来将像素分配到网格上最近的交叉点,或者是否有更简单的方法。我正在使用缓冲图像来绘制网格。请帮忙。这就是我到目前为止所拥有的

for (int i = 0; i < 61; i++) {
                g2d.drawLine((imgDim.width + 2) / 40 * i, 0,
                        (imgDim.width + 2) / 40 * i, imgDim.height - 1);
                g2d.drawLine(0, (imgDim.height + 2) / 60 * i,
                        imgDim.width - 1, (imgDim.height + 2) / 60 * i);
            }

谢谢

2 个答案:

答案 0 :(得分:0)

你是如何得出随机点的?进行调整可能是最简单的方法。也就是说,只需在您使用的过程中删除0即可获得积分。然后当你准备好绘制它时,再添加一个0。

答案 1 :(得分:0)

真的?为了使随机点(pixelX,pixelY)捕捉到网格的最近点。

int gridSize = 10;
int x = (pixelX + gridSize / 2) / gridSize * gridSize;
int y = (pixelY + gridSize / 2) / gridSize * gridSize;