【问题标题】:drawing shapes on a grid在网格上绘制形状
【发布时间】:2013-03-31 06:02:45
【问题描述】:

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

谢谢

【问题讨论】:

  • 是的,在绘制形状之前,您必须编写一个算法将像素分配到网格上最近的交点。
  • 感谢您的回复,任何人都可以让我开始使用这种算法

标签: java java-2d


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多