Java镜像对角线方法不起作用

时间:2013-04-16 18:51:16

标签: java

我无法让我的方法工作。该方法应该反映我在其对角线上选择的任何图像以产生镜像效果,但目前它只生成未经编辑的相同图像,而我不会做出错误的事情。任何帮助将不胜感激。谢谢。

public Picture mirrorImageDiagonal() {
  int size = this.getWidth();
  Pixel rightPixel = null;
  Pixel leftTargetPixel = null;
  Pixel rightTargetPixel = null;
  Picture target = new Picture(size, size);
  for (double x = 0; x < size; x ++) {
      for (double y = 0; y <= x; y ++) {
          int yIndex = Math.min((int) y, this.getHeight() - 1);
          int xIndex = Math.min((int) x, this.getWidth() - 1);
          leftTargetPixel = target.getPixel(yIndex, xIndex);
          rightTargetPixel = target.getPixel(xIndex, yIndex);
          rightPixel = this.getPixel(xIndex, yIndex);
          rightTargetPixel.setColor(rightPixel.getColor());
          leftTargetPixel.setColor(rightPixel.getColor());
          }
    }
  return target;
  }

1 个答案:

答案 0 :(得分:1)

我假设您正在尝试完成图片实验室数据包中的A6挑战。我刚刚在学校完成了这项工作,但如果你不这样做,我希望这对你有帮助。

public void mirrorDiagonal()
  {
    Pixel[][] pixels = this.getPixels2D();
    Pixel pixel1 = null;
    Pixel pixel2 = null;
    int width = pixels[0].length;
    for (int row = 0; row < pixels.length; row++)
    {
      for (int col = 0; col < width; col++)
      {
        if (col < pixels.length)
        {
            pixel1 = pixels[row][col];
            pixel2 = pixels[col][row];
            pixel1.setColor(pixel2.getColor());
        }
      }
    } 
  }