用Java绘制矩形

时间:2017-05-03 21:48:53

标签: java oop rectangles

我试图像这张图片一样在Java中绘制矩形:

enter image description here

我像在数学时一样可视化坐标,但我想出了颠倒的矩形,就像这样:

enter image description here

我知道我只缺少一些东西。我该怎么办? (颜色将被编辑)

 public class BlockTower
{
public static void main(String[] args)
{

    Rectangle rect1 = new Rectangle(20, 70, 40, 30);
    rect1.draw();
    rect1.setColor(Color.BLUE);
    rect1.fill();

    Rectangle rect2 = new Rectangle(60, 70, 40, 30);
    rect2.draw();
    rect2.setColor(Color.MAGENTA);
    rect2.fill();

    Rectangle rect3 = new Rectangle(100, 70, 40, 30);
    rect3.draw();
    rect3.setColor(Color.CYAN);
    rect3.fill();

    Rectangle rect4 = new Rectangle(40, 100, 40, 30);
    rect4.draw();
    rect4.setColor(Color.RED);
    rect4.fill();

    Rectangle rect5 = new Rectangle(80, 100, 40, 30);
    rect5.draw();
    rect5.setColor(Color.PINK);
    rect5.fill();

    Rectangle rect6 = new Rectangle(60, 130, 40, 30);
    rect6.draw();
    rect6.setColor(Color.BLUE);
    rect6.fill();



    //TODO finish the draft to display the six blocks
  }
}

1 个答案:

答案 0 :(得分:1)

Swing中的坐标从左上角开始。这意味着你必须重新计算你的y坐标。因此,面板的底部实际上位于当前height

enter image description here

如果您计算了坐标(x,y)处的某些内容,则现在必须在坐标(x, height - y)处。