有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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());
            }
          }
        } 
      }