import java.applet.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.Color;
public  class FengChe   extends Applet{
   private int xValuse[]={50,40,50,60,50};
    private int yValuse[]={70,30,20,30,70};
    private int xHome1[]={270,310,320,260,270};
    private int yHome1[]={150,150,170,170,150};
    private int xHome2[]={270,310,310,270,270};
    private int yHome2[]={170,170,200,200,170};
    private int xPole[]={48,52,54,46,48};
    private int yPole[]={70,70,170,170,70};
   private Polygon p1,h1,h2,p2;
   int n=0,m=0;
    public void paint(Graphics g){
      Graphics2D g2d=(Graphics2D)g;
      setBackground(new Color(100,255,200));
      AffineTransform transf=new AffineTransform();
      p1=new Polygon(xValuse,yValuse,5); 
      h1=new Polygon(xHome1,yHome1,5);
      h2=new Polygon(xHome2,yHome2,5);
      p2=new Polygon(xPole,yPole,5);
      g2d.drawPolygon(h1);
      g2d.drawPolygon(h2);
      g2d.setColor(Color.gray);            
      g2d.fillPolygon(p2);
      transf.rotate(1*n,50.0,70.0);
      n++;
      g2d.setColor(Color.orange); 
      g2d.drawArc(200,230,30,40,-60,60);  
      g2d.drawArc(196,210,30,40,-60,60);
      g2d.drawArc(190,212,30,40,-60,60);
      g2d.drawArc(190,212,30,40,-60,60);
      g2d.drawArc(188,222,30,40,-60,60);
      g2d.drawArc(182,221,30,40,-60,60);
      g2d.drawArc(180,228,30,40,-60,60);
      g2d.drawArc(178,218,30,40,-60,60);
      g2d.drawArc(176,224,30,40,-60,60);
      g2d.drawArc(165,224,30,40,-60,60);
      g2d.drawArc(172,213,30,40,-60,60);
      g2d.drawArc(154,222,30,40,-60,60);
      g2d.drawArc(163,221,30,40,-60,60);
      g2d.drawArc(132,220,30,40,-60,60);
      g2d.drawArc(110,218,30,40,-60,60);
      g2d.drawArc(60,226,30,40,-60,60);
      g2d.drawArc(54,225,30,40,-60,60);
      g2d.drawArc(63,228,30,40,-60,60);
      g2d.drawArc(32,227,30,40,-60,60);
      g2d.drawArc(188,222,30,40,-60,60);
      g2d.drawArc(182,221,30,40,-60,60);
      g2d.drawArc(180,228,30,40,-60,60);
      g2d.drawArc(178,218,30,40,-60,60);
      g2d.drawArc(176,224,30,40,-60,60);
      g2d.drawArc(165,224,30,40,-60,60);
      g2d.drawArc(172,213,30,40,-60,60);
      g2d.drawArc(154,222,30,40,-60,60);
      g2d.drawArc(163,221,30,40,-60,60);
      g2d.drawArc(132,220,30,40,-60,60);
      g2d.drawArc(110,218,30,40,-60,60);
      g2d.drawArc(60,226,30,40,-60,60);
      g2d.drawArc(54,225,30,40,-60,60);
      g2d.drawArc(63,228,30,40,-60,60);
      g2d.drawArc(32,227,30,40,-60,60);
      g2d.drawArc(230,210,30,40,-60,60);
      g2d.drawArc(12,212,30,40,-60,60);
      g2d.drawArc(64,222,30,40,-60,60);
      g2d.drawArc(236,221,30,40,-60,60);
      g2d.drawArc(87,228,30,40,-60,60);
      g2d.drawArc(54,218,30,40,-60,60);
      g2d.drawArc(27,224,30,40,-60,60);
      g2d.drawArc(49,224,30,40,-60,60);
      g2d.drawArc(10,213,30,40,-60,60);
      g2d.drawArc(7,222,30,40,-60,60);
      g2d.drawArc(211,221,30,40,-60,60);
      g2d.drawArc(215,220,30,40,-60,60);
      g2d.drawArc(213,218,30,40,-60,60);
      g2d.drawArc(205,226,30,40,-60,60);
      g2d.drawArc(224,225,30,40,-60,60);
      g2d.drawArc(56,228,30,40,-60,60);
      g2d.drawArc(74,227,30,40,-60,60);
      g2d.setColor(Color.lightGray); 
      double rad=Math.toRadians(360.0/5);
      for(int i=0;i<5;i++){
        transf.rotate(rad,50.0,70.0);
        g2d.setTransform(transf);
        g2d.fill(p1);
      }
      for(int i=0;i<1000000;i++);
       transf.rotate(1*m,50.0,70.0);
       m++;
        g2d.fill(p1);
        repaint();
   } 
  }
上面的代码运行之后的结果是2个柱子,个风车的叶子.
我想请java高手帮我修改一下,把柱子变成4个,风叶换一种形状!
希望大家帮我一下,先谢谢大家了.

解决方案 »

  1.   

    private int xValuse[]={50,40,50,60,50};private int yValuse[]={70,30,20,30,70};这两个数组生成了多边形p1,把数组中的值改一下就能控制风叶的形状。记得数组中元素的数量要比多边形的边数多一个,生成多边形p1的那一句p1=new Polygon(xValuse,yValuse,5); 最后的一个5就是数组中的元素数量。
    private int xPole[]={48,52,54,46,48};private int yPole[]={70,70,170,170,70};这两句控制的是柱子的外形,参照风叶的改法修改下就可以了