如何使正方形与彼此处于同一水平?

时间:2018-04-06 03:41:50

标签: java recursion awt

这就是我的输出:

这就是我想要的方式:

public void drawSquare(Graphics g, int x, int y, int size)
{
    g.drawRect(x,y,size,size);
    if(size >2 && x < 1001 && y <= 200)
    {
        x+= 10+size;     
       // y = I know I'm supposed to modify y, but I'm lost on how to make it level out...
        size = size*3/4;
        drawSquare(g,x,y,size);
    }
}   

帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题是y轴指向下方,因此正方形的顶部是对齐的。相反,为了保持底部对齐,请考虑每个正方形的y坐标必须通过与前一个正方形的尺寸差异进行调整。我的意思是,如果你看任何两个正方形,右边的正方形需要向下移动一些数量,这个数量等于两个正方形之间的大小差异。

public void drawSquare(Graphics g, int x, int y, int size)
{
    g.drawRect(x,y,size,size);
    if(size >2 && x < 1001 && y <= 200)
    {
        x+= 10+size;     
        int newSize = size*3/4;
        y = y + size - newSize; // (size - newSize) is the difference
        size = newSize;
        drawSquare(g,x,y,size);
    }
}