4.9.1 Kreise und Gitter
 
Übung 1 Erzeugen Sie mit der Turtle konzentrische Kreise um den Mittelpunkt (0/0). Die Die Turtle-API hilft bei der Suche nach den geeigneten Methoden zu finden.
 
Turtle-API
 

Downlaod:
Kreise2.java
 


 
Die zeichne()-Methode. Die Turtle, die uns die Grafiken 'malen' soll. nennen wir maler. Die Deklaration und die Erzeugung des Turtle-Objektes muss entsprechend geändert werden (t1 der Vorlage wird überlall zu maler). Im weiteren wird nur die zeichne() - Methode dargestellt.
public void zeichne() {
  maler.right(270);
  for (int i = 0; i < 15; i++){
    maler.jumpTo(0,10*i);
    maler.circle(10*i);
  }
}
  Zu beachten ist, dass die Turtle immer die richtige Orientierung und den richtigen Startpunkt zum Zeichnen des Kreises hat. Die Orientierung muss nur einmal gesetzt werden, da nach dem Zeichnen eines Kreises, die Turtle automatisch wieder die gleiche Orientierung hat. Mit der jumpTo()-Methode wird die Turtle gesetzt. Dabei ist die Sprungweite gerade der Radius, der bei jedem Schleifendurchgang um 10 wächst.
 
Übung 2 Erzeugen Sie mit der Turtle ein Gitter.
 
Download:
Gitter.java

Zur Implementierung benutzen wir zwei Schleifen. Die erste erzeugt die senkrechten Streifen, die zweite die waagerechte Streifen.

 

 
public void zeichne() {
  double x = -150, y = 100;
  while(x<=150){
    maler.jumpTo(x,y);
    maler.moveTo(x,-100);
    x += 20;  //oder x = x+20;
  }
  x = -150; y = 100;
  while(y>=-100){
    maler.jumpTo(x,y);
    maler.moveTo(150,y);
    y -= 20; //oder x = x-20;
  }
}
  Vor dem Eintritt in die Schleife muss die Turtle jedesmal in die linke obere Ecke des Gitters gesetzt werden.
 
Übung 3 Das Muster, das hier erzeugt werden soll, ist etwas schwieriger.
 

Download:
Muster4.java


 
  Leichter wird es, wenn wir erkennen, dass es ein Grundelement gibt, das relativ einfach zu programmieren geht:

Wie man leicht nachvollziehen kann, wird dieses Grundelement durch die folgende Anweisungssequenz erzeugen:

maler.right(90);
maler.forward(20);
maler.right(90);
maler.forward(20);
maler.right(90);
maler.forward(15);
maler.right(90);
maler.forward(10);
maler.right(90);
maler.forward(5);
maler.right(90);
maler.forward(5);
maler.right(270);
maler.forward(5);
maler.right(270);
maler.forward(10);
maler.right(270);
maler.forward(15);
maler.right(270);
maler.forward(20);
 

  Danach setzen wir unser Grundelement 12 mal untereinander. Das erreichen wir am einfachsten in einer Schleife:
for (int y = 150; y > -150 ; y-=25){
  maler.jumpTo(x,y);
  //hier steht die Sequenz für das Grundelement          
  maler.right(180); 
}

Gleich Zu Beginn der Schleife muss die Turtle richtig positioniert werden. Der y-Wert ändert sich dabei von Schleifendurchgang zu Schleifendurchgang. Welchen Wert dabei x unverändert hat, erfahren wir dann im nächsten Schritt. Erwähnen müssen wir noch, dass wir am Ende eines jeden Schleifendurchgangs wir die Turtle wieder richtig orientieren.

Im nächsten Schirtt brauchen wir nur noch dafür sorgen, dass das, was wir bisher gemacht haben sich in x-Richtung noch genügend oft wiederholt. Das erreichen wir dadurch, dass wir unsere Schleife in eine weitere Schleife einbauen:

for (int x = -150; x<= 150;x+=25){
   // Hier steht der Code von oben
}

Hier erkennen wir nun auch, wo die Variable x definiert und initialisiert wird. Die gesamte zeichne()-Methode hat damit die folgende Gestalt:

for (int x = -150; x<= 150;x+=25){
   for (int y = 150; y > -150 ; y-=25){
      maler.jumpTo(x,y);
      maler.right(90);
      maler.forward(20);
      maler.right(90);
      maler.forward(20);
      maler.right(90);
      maler.forward(15);
      maler.right(90);
      maler.forward(10);
      maler.right(90);
      maler.forward(5);
      maler.right(90);
      maler.forward(5);
      maler.right(270);
      maler.forward(5);
      maler.right(270);
      maler.forward(10);
      maler.right(270);
      maler.forward(15);
      maler.right(270);
      maler.forward(20);
      maler.right(180); //wieder in Ausgangsrichtung
   }
}
zu 4.9.2 Four Cool Cats
zur Startseite www.pohlig.de  (C) MPohlig 2004