Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.amcgala;
  
  
  
  import static com.google.common.base.Preconditions.checkArgument;
  import static java.lang.Math.*;

Die Klasse stellt Funktionlitäten zur Verfügung, die man benötigt, um Turtlegrafiken zu erstellen.

Author(s):
Robert Giacinto
Since:
2.0
 
 public abstract class TurtleMode {
    
Die Standardbreite des Turtlefensters.
 
     protected final static int WIDTH = 800;
    
Die Standardhöhe des Turtlefensters.
 
     protected final static int HEIGHT = 600;
 
     // Die Szene, in der der Turtle-Modus aktiv ist.
     private final Scene scene = new Scene("turtle");
 
     // Die Blickrichtung der Turtle. Sie schaut in Richtung der x-Achse. Also nach rechts.
     private Vector3d heading = .;
 
     // Die Turtle steht im Urspung des Koordinatensystems. Aktuell in der Mitte des Fensters.
     private Vector3d position = .;
 
     // Der Blinkwinkel - das gleiche wie heading, nur dass es sich hierbei um eine Graddarstellung im Bogenmaß handelt.
     private double headingAngle;
 
     // Wenn up true ist, dann zeichnet die Turtle nicht.
     private boolean up;


    
Erzeugt ein TurtleMode Fenster der Größe 800x600.
 
     public TurtleMode() {
         turtleCommands();
         Framework framework = Framework.createInstance();
         framework.addScene();
     }

    
Erzeugt ein TurtleMode Fenster einer beliebigen Größe.

Parameters:
width die Breite des Fensters
height die Höhe des Fensters
 
     public TurtleMode(int widthint height) {
         turtleCommands();
         Framework framework = Framework.createInstance(widthheight);
         framework.addScene();
     }
 
     private void set(int xint y) {
         set((doublex, (doubley);
     }
 
     private void set(double xdouble y) {
          = new Vector3d(xy, -1);
     }

    
Nimmt den Zeichenstift der Turtle von der Zeichenfläche und stoppt das Zeichnen. Nach dem Aufruf dieser Methode kann die Turtle bewegt werden, ohne Änderungen an der Zeichnung vorzunehmen.
 
     protected void up() {
          = true;
     }

    
Setzt den Zeichenstift der Turtle wieder auf der Zeichenfläche ab und beginnt das Zeichnen, sobald die Turtle nach dem Aufruf dieser Methode wieder bewegt wird.
 
     protected void down() {
          = false;
     }

    
Dreht die Turtle entgegen den Uhrzeigersinn um den Winkel, der als Parameter übergeben wird.

Parameters:
angle der Winkel in Grad
 
     protected void turnLeft(double angle) {
          += angle;
          = new Vector3d(cos(toRadians()), sin(toRadians()), -1);
         .normalize();
     }

    
Dreht die Turtle im Uhrzeigersinn um den Winkel, der als Parameter übergeben wird.

Parameters:
angle der Winkel in Grad
    protected void turnRight(double angle) {
         -= angle;
         = new Vector3d(cos(toRadians()), sin(toRadians()), -1);
        .normalize();
    }

    
Bewegt die Turtle um eine bestimmte Länge in Blickrichtung der Turtle.

Parameters:
length die Länge des Schritts
    protected void move(double length) {
        checkArgument(length > 0, "Schrittlänge kann nur positiv sein!");
        if () {
             = .add(.times(length));
        } else {
            Vector3d endPosition = .add(.times(length));
            endPosition.z = -1;
            . = -1;
            .addShape(new Line(endPosition));
             = endPosition;
        }
    }
    public abstract void turtleCommands();
New to GrepCode? Check out our FAQ X