我想在第1秒时画一个80*60的矩形,然后在下1秒画和它夹角为5度的80*60的矩形,....依次类推,怎么画呢?

解决方案 »

  1.   

    “Dan1980”是正解,无论什么角度,都可计算坐标(把矩形当成一个多边形),非要用矩形的话,用AffineTransform(仿射变换)类,可以提供平移,旋转,缩放。
    下面是一个例子:    import javax.swing.JFrame;
    public class Test extends JFrame{

    public Test(){
    super("Tset");

    setSize(300,300);
    }

    //重写paint
    public void paint(java.awt.Graphics g){
    super.paint(g);

    java.awt.Graphics2D g2=(java.awt.Graphics2D)g;

    //获取一个旋转45度,平移150点的变换对象
    java.awt.geom.AffineTransform af=java.awt.geom.AffineTransform.getRotateInstance(45d,150d,150d);

    //构造一个矩形
    java.awt.Rectangle rc=new java.awt.Rectangle(100,100,100,100);

    //原样绘制
    g2.draw(rc);

    //变换后绘制
    g2.setTransform(af);
    g2.draw(rc);

    g2.dispose();
    }


    public static void main(String[] args){
    new Test().setVisible(true);
    }
    }
      

  2.   

    谢谢lzmailcn(一年前的新手),Dan1980,ciahi(爪哇乞丐),你们的建议可以用到我的把gobal view 和local view进行转变.