在正方形内绘制正方形

时间:2013-08-30 11:20:22

标签: java swing graphics polygon paintcomponent

我有一个任务,我应该在正方形中绘制正方形并最终得到类似的东西:

Squares

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

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坐标,使得方形开始越来越向中心开始(对不起,这可能是一个可怕的解释)。无论如何,我现在陷入困境,如果有人有更好的方法来解决这个问题(或者可以指出我在正确的方向上)那将会很棒。

谢谢!

1 个答案:

答案 0 :(得分:5)

如图here所示,您可以轮播和缩放Shape,例如Rectangle。实际上,创建List<Shape>然后在paintComponent()中显示部分或全部内容可能更容易。为了获得更好的效果,请使用javax.swing.Timer来调整动画的速度。