8.6 Der Turtle-Balztanz
 
Turtle-Balztanz Der Turtle-Balztanz, nennen wir ihn eher Verfolgungsjagd ist sehr einfach zu beschreiben. Elsa macht wie gewohnt ihren Random-Walk. Walter geht bei jedem Schritt den Elsa macht in Richtung Elsa, da er aber doch etwas schüchtern ist, geht er nicht ganz auf Elsa zu, sondern legt immer nur die halbe Distanz zwischen ihm und Elsa zurück. So kommt es zu einer Verfolgungsjagd, bei der sich Walter seiner Tanzpartnerin zwar mal nähert, aber nie erreicht, es sei denn....
 
 
 
Weitere Methode der Turtle. Damit Walter weiß, in welche Richtung er laufen muss, muss zunächst die Position von Elsa ermittelt werde. Dies geschieht mit.

double elsaX = elsa.getX();
double elsaY = elsa.getY();

Damit kann Walter in die richtige Richtung laufen, da er aber immer nur die halbe Distanz zwischen sich und Elsa zurücklegt, benötigen wir noch die aktuelle Position von Walter selbst.

double walterX = walter.getX();
double walterY = walter.getY();
double abstand =
  Math.sqrt(Math.pow((walterX-elsaX),2)+Math.pow(walterY-elsaY,2));

Erkennen Sie bei der Bestimmung des Abstandes die Formel, die Sie aus dem Mathematikunterricht her kennen?

 Mit Math.pow(<zahl>,n) berechnet man die n-te Potenz von <zahl> und mit Math.sqrt(<zahl>) die Quadratwurzel von <zahl>. Die Buchstaben sqrt stehen dabei für square root.

 

Download:
BalzTanz.java
import turtle.*;

import java.awt.*;



public class BalzTanz extends TurtleFrame {

  Turtle walter, elsa;

  public BalzTanz(String title) {

    super(title);

    walter = new Turtle(tWin);

    walter.setColor(Color.BLUE);

    elsa = new Turtle(tWin);

    elsa.setColor(Color.RED);

  }



  public void zeichne() {

    elsa.right(360*Math.random());

    elsa.forward(100*Math.random());

    double elsaX = elsa.getX();

    double elsaY = elsa.getY();

    double walterX = walter.getX();

    double walterY = walter.getY();

    double abstand = 

      Math.sqrt(Math.pow((walterX-elsaX),2)+Math.pow(walterY-elsaY,2));

    walter.turnTo(elsaX,elsaY);

    walter.forward(abstand/2);

  }



  public static void main (String[] args) {

    new BalzTanz("Turtle-Balztanz");

  }

}
zu 8.7 Übungen
zur Startseite www.pohlig.de  (C) MPohlig 2003