import java.applet.*;
import java.awt.*;
import java.awt.geom.*;

public class m0104418 extends Applet {
  GeneralPath l0 = new GeneralPath(), l1 = new GeneralPath(), l2 = new GeneralPath(), l3 = new GeneralPath(), l4 = new GeneralPath(),
  					 l5 = new GeneralPath(), l6 = new GeneralPath();

   Circle c0 = new Circle(0, 0, 100);
   Circle c1 = new Circle(300, 0, 30);
   Circle c2 = new Circle(-100, 370, 150);
   Circle c3 = new Circle(0, 190, 10);
   Circle c4 = new Circle(0, 110, 20);
   Circle c5 = new Circle(650, 500, 150);

  public void init() {
	 setBackground(Color.white);


	//中央の花びら
    l0.moveTo(340.0f, 340.0f); l0.curveTo(260.0f, 200.0f, 300.0f, 200.0f, 340.0f, 340.0f);


    //その周りの花びら
	l1.moveTo(275.0f, 275.0f); l1.curveTo(260.0f, 200.0f, 300.0f, 200.0f, 275.0f, 275.0f);
	l4.moveTo(255.0f, 255.0f); l4.curveTo(240.0f, 180.0f, 280.0f, 180.0f, 255.0f, 255.0f);
	l5.moveTo(225.0f, 225.0f); l5.curveTo(210.0f, 150.0f, 250.0f, 150.0f, 225.0f, 225.0f);
	l6.moveTo(155.0f, 155.0f); l6.curveTo(140.0f, 80.0f, 180.0f, 80.0f, 155.0f, 155.0f);

    //舞い散る花びら
    l2.moveTo(180.0f, 180.0f); l2.quadTo(200.0f, 160.0f, 220.0f, 180.0f);
	l3.moveTo(180.0f, 180.0f); l3.quadTo(200.0f, 190.0f, 220.0f, 180.0f);

  }
  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;

    g2.setStroke(new BasicStroke(1f));

    c0.draw(g);
	c1.draw(g);
	c2.draw(g);
	c3.draw(g);
	c4.draw(g);
	c5.draw(g);

   for(int i = 0; i < 70; ++i) { //中央の花びら
   	    g2.setPaint(new Color(250-i*3, 100+i*2, 240-i*3));
   	    g2.rotate(2+i, 400, 300);
   	    g2.draw(l0);
	}

	for(int i = 0; i < 50; ++i) { //その周りの花びら
	    g2.setPaint(new Color(250, 240-i*2, 150+i));
	    g2.rotate(5+2*i, 400, 300);
	    g2.draw(l1);
	}
	for(int i = 0; i < 50; ++i) {
	    g2.setPaint(new Color(250-i*3, 120+i*2, 240-i*3));
	    g2.rotate(5+2*i, 400, 300);
	    g2.draw(l1);
	}
	for(int i = 0; i < 50; ++i) {
		    g2.setPaint(new Color(250, 100+i*2, 120-i*2));
		    g2.rotate(5+2*i, 400, 300);
		    g2.draw(l4);
	}
	for(int i = 0; i < 50; ++i) {
			    g2.setPaint(new Color(250, 60+i*3, 120-i*2));
			    g2.rotate(5+2*i, 400, 300);
			    g2.draw(l5);
	}

  for(int i = 0; i < 100; ++i) {
  	    g2.setPaint(new Color(250, 60+i, 100-i));
  	    g2.rotate(5+2*i, 600, 400);
  	    g2.draw(l6);
 }
  for(int i = 0; i < 50; ++i) {
   	    g2.setPaint(new Color(250, 60+i, 100-i));
   	    g2.rotate(5+2*i, 200, 200);
   	    g2.draw(l6);
  }

   for(int i = 0; i < 30; ++i) {
    	    g2.setPaint(new Color(250, 60+2*i, 200-i*3));
    	    g2.rotate(5+2*i, 70, 70);
    	    g2.draw(l6);
   }
 }
}
//円を描くクラス(背景用)
class Circle{
   int begin, height, radius;
   public Circle(int b, int h, int r){
     begin = b; height = h; radius = r;
   }
   public void draw(Graphics g){
     for(int i=0; i<=0; i++){
	for(int l=radius; l>=0; l--){
	  g.setColor(new
Color(200+(int)(l*55/radius),200+(int)(l*55/radius),255));
	  g.fillOval(begin+50*i+radius-l, height-l, 2*l, 2*l);
         }
     }
   }
}
