2013-03-29 37 views
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); 
      } 

谢谢

+0

是的,您必须编写一个算法,在绘制形状之前将像素指定到网格上最近的交点。 –

+0

谢谢你的回复,任何人都可以给我这种算法的开始 – user2224555

回答

0

你怎么想出的随机点?进行调整可能是最简单的方法。也就是说,在您使用的过程中,首先将点数降为0即可。然后,当您准备好绘制它时,请添加0。

0

认真吗?为了使一个随机点(pixelX,pixelY)对齐网格的最近点。

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