0

我需要在网格上绘制随机形状,例如线条正方形等。这部分我可以做到。我的问题是我正在绘制的线条的起点和终点落在网格单元格中的任何位置。我希望他们只在交叉点。网格中的一个单元格是 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);
            }

谢谢

4

2 回答 2

0

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

int gridSize = 10;
int x = (pixelX + gridSize / 2) / gridSize * gridSize;
int y = (pixelY + gridSize / 2) / gridSize * gridSize;
于 2013-03-30T22:02:45.037 回答
0

你是怎么想出随机点的?在那里进行调整可能是最简单的方法。也就是说,只需在您用来计算分数的过程中删除 0 即可。然后当你准备好画它时,加一个 0 回来。

于 2013-03-29T15:22:18.640 回答