Java 在正方形中画正方形

Java 在正方形中画正方形,java,swing,graphics,polygon,paintcomponent,Java,Swing,Graphics,Polygon,Paintcomponent,我有一个任务,我应该在正方形中画正方形,最后得到这样的结果: public void paintComponent(Graphics g){ super.paintComponent(g); setBackground(Color.DARK_GRAY); int x1 = 50; int y1 = 50; int x2 = 250; int y2 = 50; int x3 = 250; int y3 = 250; int x

我有一个任务,我应该在正方形中画正方形,最后得到这样的结果:

public void paintComponent(Graphics g){
    super.paintComponent(g);
    setBackground(Color.DARK_GRAY);
    int x1 = 50;
    int y1 = 50;
    int x2 = 250;
    int y2 = 50;
    int x3 = 250;
    int y3 = 250;
    int x4 = 50;
    int y4 = 250;
    int xPoints[] = {x1,x2,x3,x4};
    int yPoints[] = {y1,y2,y3,y4};
    int nPoints = 4;
    g.setColor(Color.GREEN);
    g.drawPolygon(xPoints, yPoints, nPoints);

}

我一直在尝试不同的方法来解决这个问题,但由于我有限的编程知识,我似乎无法想出一个简单的方法来解决这个问题。我想做的是做一个多边形来画一个正方形,像这样:

public void paintComponent(Graphics g){
    super.paintComponent(g);
    setBackground(Color.DARK_GRAY);
    int x1 = 50;
    int y1 = 50;
    int x2 = 250;
    int y2 = 50;
    int x3 = 250;
    int y3 = 250;
    int x4 = 50;
    int y4 = 250;
    int xPoints[] = {x1,x2,x3,x4};
    int yPoints[] = {y1,y2,y3,y4};
    int nPoints = 4;
    g.setColor(Color.GREEN);
    g.drawPolygon(xPoints, yPoints, nPoints);

}
然后简单地在正确的点坐标上添加几个像素来移动正方形。问题是我无法找到沿直线的y坐标,以使正方形开始越来越靠近中心(对不起,这可能是一个可怕的解释)。无论如何,我现在陷入困境,如果有人有更好的方法来解决这个问题(或者可以为我指出正确的方向),那就太好了


谢谢大家!

如图所示,您可以旋转和缩放任何
形状
,例如
矩形
。实际上,创建一个
列表
,然后在
paintComponent()
中显示部分或全部列表可能更容易。要获得良好效果,请使用调整动画的速度。

如图所示,您可以旋转和缩放任何
形状
,例如
矩形
。实际上,创建一个
列表
,然后在
paintComponent()
中显示部分或全部列表可能更容易。为了获得好的效果,请使用调整动画的速度。

我认为您可以通过简单的仿射变换、缩放和旋转一次完成此操作…我认为您可以通过简单的仿射变换、缩放和旋转一次完成此操作…谢谢,我将看一看。顺便说一下,它不应该是动画。啊,动画是可选的。递归是必需的吗?不是必需的,但是我的教授在几乎每节课上都在谈论递归,所以这可能是一种方法。谢谢,我来看看。顺便说一下,它不应该是动画。啊,动画是可选的。递归是必需的吗?不是必需的,但我的教授几乎在每节课上都在谈论递归,所以这可能是一条可行之路。