import java.applet.Applet;
import java.awt.*;
import java.awt.geom.*;

public class affine extends Applet {
    GeneralPath l0 = new GeneralPath(), l1 = new GeneralPath(),
	l2 = new GeneralPath(), l3 = new GeneralPath(),
	    l4 = new GeneralPath();

    public void init() {
        float c = (float)(Math.cos(Math.PI/6));
        l0.moveTo(150f, 100f);
        l0.lineTo(150f, 190f);
        l1.moveTo(150f, 100f);
        l1.lineTo((float)(150-25*c), (float)(50*c*c+100));
        l1.lineTo((float)(171-25*c), (float)(90*c+115));
        l2.moveTo(150f, 100f);
        l2.lineTo((float)(150+25*c), (float)(50*c*c+100));
        l2.lineTo((float)(129+25*c), (float)(90*c+115));
    }



    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        g2.setPaint(new GradientPaint(0f, 150f, Color.red,
                                      0f, 120f, Color.white, true));

        g2.setBackground(Color.orange);
        g2.clearRect(0, 0, getWidth(), getHeight());

        AffineTransform af = new AffineTransform();
        for(int i=0;i<=3;i++){
			for(int j=0;j<=3;j++){
		af.setToTranslation(160.0d*i, 130.0d*j);
		g2.setTransform(af);

        g2.setStroke(new BasicStroke(4f));
        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
        g2.rotate(Math.PI*1/3, 150, 100);
        g2.setPaint(new GradientPaint(160f, 170f, Color.red,160f, 130f, Color.white, true));


        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
        g2.rotate(Math.PI*1/3, 150, 100);
        g2.setPaint(new GradientPaint(150f, 120f, Color.red,
                                      150f, 80f, Color.white, true));
        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
        g2.rotate(Math.PI*1/3, 150, 100);
        g2.setPaint(new GradientPaint(140f, 130f, Color.red,
                                      140f, 90f, Color.white, true));
        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
        g2.rotate(Math.PI*1/3, 150, 100);
        g2.setPaint(new GradientPaint(140f, 130f, Color.red,
                                      140f, 90f, Color.white, true));
        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
        g2.rotate(Math.PI*1/3, 150, 100);
        g2.setPaint(new GradientPaint(140f, 170f, Color.red,
                                      140f, 130f, Color.white, true));
        g2.draw(l0);
        g2.draw(l3);
        g2.draw(l4);
        g2.draw(l1);
        g2.draw(l2);
	}
	}
    }

}