import java.awt.*;
import java.applet.*;

public class Programm3 extends Applet {
  Dreieck D1, D2, D3;
  Dreieck2 D4;
  
  public Programm3() {
    D1 = new Dreieck();
    D2 = new Dreieck(300,100);
    D3 = new Dreieck(100,250,200,120);
    D4 = new Dreieck2(300,200);
  }
  
  public void paint(Graphics Stift) {
    D1.zeichneDich(Stift);
    Stift.setColor(Color.GREEN);
    D2.zeichneDich(Stift);
    Stift.setColor(Color.RED);
    D3.zeichneDich3D(Stift);
    Stift.setColor(Color.BLUE);
    D4.zeichneDich3D(Stift);
  }
}

class Dreieck {
  int[] x,y;

  public Dreieck(int x,int y,int g,int h) {
    this.x = new int[] {x,x+(int)(g/2),x+g};
    this.y = new int[] {y,y-h,y};
  }

  public Dreieck(int x,int y) {
    this(x,y,100,100);
  }

  public Dreieck() {
    this(100,100,100,100);
  }

  public void zeichneDich(Graphics Stift) {
    Stift.drawPolygon(x,y,3);
  }
  
  public void zeichneDich3D(Graphics Stift) {
    for(int i=0;i<10;i++) {
      for(int k=0;k<3;k++) {
        x[k]+=1;
        y[k]-=1;
      }
      zeichneDich(Stift);
    }
    for(int k=0;k<3;k++) {
      x[k]-=10;
      y[k]+=10;
    }
  }
}

class Dreieck2 extends Dreieck {

  public Dreieck2(int x,int y,int g,int h) {
    super(x,y,g,h);
  }

  public Dreieck2(int x,int y) {
    super(x,y);
  }

  public Dreieck2() {
    super();
  }

  public void zeichneDich(Graphics Stift) {
    super.zeichneDich(Stift);
    int g=x[2]-x[0];
    int h=y[2]-y[1];
    Stift.fillOval(x[0]+(int)(g/4),y[0]-(int)(h/2),(int)(g/2),(int)(h/3));
  }
}

