使用java swing在广场内画一颗钻石

时间:2013-10-07 07:04:39

标签: java swing

我在使用秋千在广场内画一颗钻石时遇到了一些麻烦。 我的代码就是这个,请有人看看它,如果你能提供一个功能齐全的代码,请在广场内创建一个钻石,让我知道。 代码是: -

import javax.swing.*;
import java.awt.*;

public class MyDrawing extends JPanel
{
  static int width=250;
  static int height=250;
  static int x=0;
  static int y=0;
  private void doDrawing(Graphics g) 
  {

        Graphics2D g2d = (Graphics2D) g;

        g2d.setColor(Color.blue);

        //for (int i = 0; i <= 1000; i++) 
        g2d.drawRect(x, y, width,height);
        g2d.rotate(Math.toRadians(-45));
        System.out.println(Math.toRadians(-45));
        x=0;
        y=height/2;
        System.out.println(y);
        width=(int)Math.pow(Math.pow((width/2),2)*2,0.5);

        height=width;
        System.out.println("width:"+width+"height:"+height);
        g2d.drawRect(y, x, width,height);

}

@Override
public void paintComponent(Graphics g) {

    super.paintComponent(g);
    doDrawing(g);
}
}

1 个答案:

答案 0 :(得分:0)

要将菱形保持在正方形内,只需1.绘制一个矩形2.围绕其中心旋转矩形。

Rectangle2D rectangle = new Rectangle2D.Double(20, 20, 50, 50);
g2.draw(rectangle);
AffineTransform transform = new AffineTransform();
transform.rotate(Math.PI/4, rectangle.getX() + rectangle.width/2,    rectangle.getY() + rectangle.height/2);
g2.draw(transform);