【问题标题】:Drawing squares within squares在正方形内绘制正方形
【发布时间】:2013-08-30 11:20:21
【问题描述】:

我有一个任务,我应该在正方形内绘制正方形,并最终得到如下内容:

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

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 坐标以使正方形开始向中心越来越远(抱歉,这可能是一个可怕的解释)。无论如何,我现在被卡住了,如果有人有更好的方法来解决这个问题(或者可以指出我正确的方向),那就太好了。

谢谢!

【问题讨论】:

  • 我认为您可以通过简单的 AffineTranformation、缩放和旋转一次性完成此操作...

标签: java swing graphics polygon paintcomponent


【解决方案1】:

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

【讨论】:

  • 谢谢,我去看看。顺便说一句,它不应该是动画。
  • 啊,动画是可选的。需要递归吗?
  • 不是必需的,但我的教授几乎在每堂课中都在谈论递归,所以这可能是要走的路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
相关资源
最近更新 更多