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.*;

Eine Turtle kann zum Zeichnen von Turtlegrafiken innerhalb eines amCGAla Programms verwendet werden.

Author(s):
Robert Giacinto
 
 public class Turtle {
 
     // In diesem Shape werden die einzelnen Linienobjekte, die von der Turtle erzeugt werden, gespeichert und geschlossen
     // gerendert.
     private CompositeShape turtleShape;
 
     // Die Blickrichtung der Turtle. Zu Beginn schaut die Turtle nach oben.
     private Vector3d heading = .;
 
     // Die Turtle steht im Nullpunkt des Koordinatensystems. Aktuell ist dies der Bildmittelpunkt.
     private Vector3d position = .;
 
     // Der Blinkwinkel - das gleiche wie heading, nur dass es sich hierbei um eine Graddarstellung im Bogenmaß handelt.
     private double headingAngle;
 
     // Sitzt der Stift der Turtle auf? Ist up true, dann zeichnet die Turtle nicht.
     private boolean up;


    
Erzeugt ein neues Turtle-Objekt, das die Grafik in dem übergebenem Shape speichert.

Parameters:
shape das Shape, in dem die Turtlegrafik gespeichert werden soll
 
     public Turtle(CompositeShape shape) {
 
          = shape;
          = 90;
          = new Vector3d(cos(toRadians()), sin(toRadians()), -1);
     }

    
Erzeugt eine neue Turtle, die mit beliebigen Werten initialisiert werden kann.

Parameters:
position die Position der Turtle
heading der Vektor der Blickrichtung der Turtle
headingAngle der Blickwinkel
shape das Shape, in dem die Grafik gespeichert werden soll
 
     public Turtle(Vector3d positionVector3d headingdouble headingAngleCompositeShape shape) {
         this. = position;
         this. = heading;
         this. = shape;
         this. = headingAngle;
     }


    
Beendet den Zeichenmodus der Turtle.
 
     public void up() {
          = true;
     }

    
Setzt die Turtle in den Zeichenmodus.
 
     public void down() {
          = false;
     }

    
Dreht die Turtle um einen bestimmten Winkel gegen den Uhrzeigersinn..

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

    
Dreht die Turtle um einen bestimmten Winkel im Uhrzeigersinn.

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

    
Lässt die Turtle geradeaus gehen.

Parameters:
length die Länge des Schritts
 
    public 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;
            Line line = new Line(endPosition);
            .add(line);
             = endPosition;
        }
    }

    
Gibt die Blickrichtung der Turtle zurück.

Returns:
die Blickrichtung der Turtle
    public Vector3d getHeading() {
        return ;
    }

    
Gibt die Position der Turtle zurück.

Returns:
die Position der Turtle
    public Vector3d getPosition() {
        return ;
    }

    
Gibt den Blickwinkel der Turtle zurück.

Returns:
der Blickwinkel der Turtle
    public double getHeadingAngle() {
        return ;
    }
New to GrepCode? Check out our FAQ X