Package pi.dsa.turtle

Class TurtleGraphics

java.lang.Object
pi.dsa.turtle.TurtleGraphics
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
HilbertCurveTurtleGraphics, PythagorasTreeTurtleGraphics, RecursiveSquareTurtleGraphics, SetDirectionTurtleGraphics, SierpinskiCurveTurtleGraphics, SierpinskiTriangleTurtleGraphics, SquareTreeTurtleGraphics, SquareTurtleGraphics, TriangleTurtleGraphics, TurtleGraphicsSeries

public abstract class TurtleGraphics extends Object implements Runnable
Hilfsklasse, um eine Turtle-Grafik zu zeichnen bzw. einen Turtle-Algorithmus zu formulieren.

Diese abstrakte Klasse kann geerbt werden, um einen Algorithmus zur Zeichnung einer Turtle-Grafik zu formulieren. Folgendes Code-Beispiel illustriert die Verwendung dieser Hilfsklasse:


 import pi.dsa.turtle.TurtleAlgorithm;

 public class TriangleTurtle extends TurtleGraphics
 {
     @Override
     public void draw()
     {
         for (int i = 0; i < 3; i++)
         {
             turtle.move(4);
             turtle.rotate(120);
         }
     }

     public static void main(String[] args)
     {
         new TriangleTurtle().start();
     }
 }
 

Da Turtle-Algorithmen oft rekursiv sind, reicht es nicht den Algorithmus in eine Methode zu schreiben. Die Klasse implementiert auch die Runnable-Schnittstelle, um lang laufende Algorithmen in einem eigenen Thread laufen zu lassen und gegenfalls zu stoppen, wenn er zu lange läuft.

Since:
0.38.0
Author:
Josef Friedrich
  • Field Details

    • turtle

      protected TurtleController turtle
      Die Schildkröte, die eine Grafik zeichnet.
      Since:
      0.40.0
    • onFinished

      protected Runnable onFinished
      Eine Callback-Funktion, die aufgerufen wird, wenn die Turtle-Grafik fertig gezeichnet wurde.
      Since:
      0.40.0
    • initalState

      protected final InitialTurtleState initalState
      Since:
      0.40.0
    • clearBeforeRun

      protected boolean clearBeforeRun
      Since:
      0.40.0
    • waitAfterFinish

      protected double waitAfterFinish
      Wartet, nachdem die draw-Methode fertig ausgeführt wurde, die angegeben Anzahl an Sekunden bevor zur nächsten Wiederholung übergegangen wird.
      Since:
      0.40.0
  • Constructor Details

    • TurtleGraphics

      public TurtleGraphics()
  • Method Details

    • draw

      protected abstract void draw()
      In dieser Methode soll der Turtle-Algorithmus formuliert werden.
      Since:
      0.40.0
    • onFinished

      public TurtleGraphics onFinished(Runnable onFinished)
      Since:
      0.40.0
    • start

      public void start()
      Since:
      0.40.0