Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Einführungsphase

Die Methode KircheZeichnen

Insgesamt ergibt sich folgendende Methode, die Sie auch aus der Anpassung der eigenen Lösung der Aufgabe 2 aus Kapitel 6 erhalten könnten:

private void KircheZeichnen(int xPos, int yPos)
{
  int iTurmbreite;
  int iTurmhöhe;
  int iTurmDachhöhe;
  int iTurmMitte;
  int iSchiffbreite;
  int iSchiffhöhe;
  int iSchiffdachhöhe;
  int iSchiffdachlänge;
  int iTürbreite;
  int iTürhöhe;

  iTurmbreite = 50;
  iTurmhöhe = 7*(int)(iTurmbreite/3);
  iTurmDachhöhe = 2*(int)(Turmbreite/5);
  iTurmMitte = (int)(iTurmbreite/2);
  iSchiffbreite = 5*(int)(iTurmbreite/2);
  iSchiffhöhe = (int)(iTurmhöhe/2);
  iSchiffdachhöhe = (int)(iSchiffhöhe/3);
  iSchiffdachlänge = 4*(int)(iSchiffbreite/5);
  iTürbreite = 8;
  iTürhöhe = 4*iTürbreite;
  
  // Turm zeichnen
  grGrafik.drawRect(xPos,yPos,iTurmbreite,iTurmhöhe);

  // Turmdach zeichnen
  grGrafik.drawLine(xPos,yPos,xPos+iTurmMitte,yPos-iTurmDachhöhe);
  grGrafik.drawLine(xPos+iTurmMitte,yPos-iTurmDachhöhe,xPos+iTurmbreite,yPos);

  // Turmtür zeichnen
  grGrafik.drawRect(xPos+iTurmMitte-iTürbreite,yPos+iTurmhöhe-iTürhöhe,iTürbreite,iTürhöhe);
  grGrafik.drawRect(xPos+iTurmMitte,yPos+iTurmhöhe-iTürhöhe,iTürbreite,iTürhöhe);
  grGrafik.drawArc(xPos+iTurmMitte-iTürbreite,yPos+iTurmhöhe-iTürhöhe-iTürbreite,2*iTürbreite,2*iTürbreite,180,-180);
  
  //Turmuhr zeichnen
  grGrafik.drawOval(xPos+iTurmMitte-iTürbreite,yPos+2*iTürbreite,2*iTürbreite,2*iTürbreite);
  grGrafik.drawLine(xPos+iTurmMitte,yPos+3*iTürbreite,xPos+iTurmMitte,yPos+2*iTürbreite+2);
  grGrafik.drawLine(xPos+iTurmMitte,yPos+3*iTürbreite,xPos+iTurmMitte+iTürbreite-2,yPos+3*iTürbreite);

  //Schiff zeichnen
  grGrafik.drawRect(xPos+iTurmbreite,yPos+iTurmhöhe-iSchiffhöhe,iSchiffbreite,iSchiffhöhe);
  
  //Schiffdach zeichnen
  grGrafik.drawLine(xPos+iTurmbreite,yPos+iTurmhöhe-iSchiffhöhe-iSchiffdachhöhe,xPos+iTurmbreite+iSchiffdachlänge,yPos+iTurmhöhe-iSchiffhöhe-iSchiffdachhöhe);
  grGrafik.drawLine(xPos+iTurmbreite+iSchiffdachlänge,yPos+iTurmhöhe-iSchiffhöhe-iSchiffdachhöhe,xPos+iTurmbreite+iSchiffbreite,yPos+iTurmhöhe-iSchiffhöhe);

  //Schifffenster zeichnen
  for (int j=1;j<=7;j++)
    grGrafik.drawRect(xPos+iTurmbreite+j*2*iTürbreite,yPos+iTurmhöhe-2*iTürbreite-iTürhöhe,iTürbreite,iTürhöhe);

}

© Ralph-Erich Hildebrandt, 24. September 2006