Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Einführungsphase

Zaun zeichnen

Auch das Zeichnen des Zauns basiert im wesentlichen auf unserer WHILE-Schleife. Allerdings kommt hier zusätzlich noch das Problem hinzu, das der Zaun an der Stelle des Zebrastreifens unterbrochen ist und außerdem nicht nur aus senkrechten, sondern auch aus horizontalen Komponenten besteht.

Um die Lücke zu programmieren, wird der Methode einfach ein weiterer Parameter iLücke übergeben, der die x-Position der Lücke kennzeichnet.

Ein Zaunelement besteht dabei aus einem senkrechten Rechteck und zwei angesetzten horizontalen Rechtecken.

Damit der Zaun nicht vor der Lücke mit horizontalen Streben endet, wird innerhalb der ersten Schleife das Zeichnen der horizontalen Elemente in eine IF-Anweisung gepackt.

Hier der komplette Code der Methode ZaunZeichnen:

private void ZaunZeichnen(int xPos, int yPos, int iLücke)
{
  int iZaunhöhe = 10;
  int iZaunbreite = 3;
  int iZaunabstand = 5;
  int iStart = xPos;

  while (iStart < iLücke)
  {
    grGrafik.drawRect(iStart,yPos-iZaunhöhe,iZaunbreite,iZaunhöhe);
    if ((iStart+iZaunbreite+iZaunabstand) < iLücke)
    {
      grGrafik.drawRect(iStart+iZaunbreite,yPos-iZaunhöhe+2,iZaunabstand,iZaunbreite);
      grGrafik.drawRect(iStart+iZaunbreite,yPos-2-iZaunbreite,iZaunabstand,iZaunbreite);
    }
    iStart=iStart+iZaunbreite+iZaunabstand;
  }
  iStart = iLücke + 20;
  while (iStart < iBreite)
  {
    grGrafik.drawRect(iStart,yPos-iZaunhöhe,iZaunbreite,iZaunhöhe);
    grGrafik.drawRect(iStart+iZaunbreite,yPos-iZaunhöhe+2,iZaunabstand,iZaunbreite);
    grGrafik.drawRect(iStart+iZaunbreite,yPos-2-iZaunbreite,iZaunabstand,iZaunbreite);
    iStart=iStart+iZaunbreite+iZaunabstand;
  }
}

Aufgabe:

Analysieren Sie genau, was in der Methode gemacht wird und notieren Sie die einzelnen Schritte detailliert in Ihrem Heft.

Der Code für alle, die aus den Bruchstücken nicht den gesamten Code von strassenCanvas.java herstellen konnten


© Ralph-Erich Hildebrandt, 24. September 2006