Package ea

Class Vector

java.lang.Object
ea.Vector
All Implemented Interfaces:
Cloneable

@API public final class Vector extends Object implements Cloneable
Beschreibt einen zweidimensionalen Vektor auf der Zeichenebene. Diese Klasse wird für alle Positions- und Richtungsangaben genutzt.
Author:
Michael Andonie
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Vector
    Konstante für eine einfache Verschiebung vectorFromThisTo unten (0, 1)
    static final Vector
    Konstante für eine einfache Verschiebung vectorFromThisTo links (-1, 0)
    static final Vector
    Konstante für einen "bewegungslosen" Vector (0, 0)
    static final Vector
    Konstante für eine einfache Verschiebung vectorFromThisTo rechts (1, 0)
    static final Vector
    Konstante für eine einfache Verschiebung vectorFromThisTo oben (0, -1)
  • Constructor Summary

    Constructors
    Constructor
    Description
    Vector(double x, double y)
     
    Vector(float x, float y)
    Konstruktor.
    Vector(Vector start, Vector end)
    Konstruktor.
  • Method Summary

    Modifier and Type
    Method
    Description
    add(float x, float y)
    Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.
    Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.
     
    divide(float divisor)
    Teilt die effektive Länge des Vektors durch eine Zahl und kürzt dadurch seine Effektivität.
    boolean
    Prüft, ob ein beliebiges Objekt gleich diesem Vector ist.
    float
    Berechnet den Winkel zwischen diesem Vector und einem weiteren.
    Berechnet die Richtung des Vektors, in die er wirkt.
    Gibt den Vektor an, der den Punkt, den dieser Vektor beschreibt, zu dem Punkt verschieben würde, den ein weiterer Vektor beschreibt.
    float
    Gibt die Länge des Vektors aus.
    float
    Gibt die Manhattan-Länge des Vektors zurück.
    float
    Berechnet das Skalarprodukt von diesem Vector mit einem weiteren.
    float
     
    float
     
    boolean
    Gibt zurück, ob dieser Vector echt ganzzahlig ist, also ob seine tatsächlichen Delta-Werte beide Ganzzahlen sind.
    boolean
     
    boolean
    Berechnet, ob dieser Vector keine Wirkung hat.
    multiply(float factor)
    Multipliziert die effektiven Längen beider Anteile des Vektors (getX und getY) mit einem festen Faktor.
    multiplyX(float factor)
    Multipliziert die effektive Länge des X-Anteils des Vektors mit einem festen Faktor.
    multiplyY(float factor)
    Multipliziert die effektive Länge des X-Anteils des Vektors mit einem festen Faktor.
    Berechnet die Gegenrichtung des Vektors.
    Berechnet die Gegenrichtung des Vektors in X-Richtung.
    Berechnet die Gegenrichtung des Vektors in Y-Richtung.
    Gibt eine Normierung des Vektors aus.
    static Vector
    of(org.jbox2d.common.Vec2 vector)
     
    static Vector
    ofAngle(float angleInDegree)
     
    rotate(float degree)
    Berechnet eine rotierte Version.
    subtract(float x, float y)
    Berechnet die Differenz zwischen diesem und einem weiteren Vector.
    Berechnet die Differenz zwischen diesem und einem weiteren Vector.
    Gibt die String-Repräsentation dieses Objektes aus.
    org.jbox2d.common.Vec2
     

    Methods inherited from class java.lang.Object

    getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • NULL

      @API public static final Vector NULL
      Konstante für einen "bewegungslosen" Vector (0, 0)
    • LEFT

      @API public static final Vector LEFT
      Konstante für eine einfache Verschiebung vectorFromThisTo links (-1, 0)
    • UP

      @API public static final Vector UP
      Konstante für eine einfache Verschiebung vectorFromThisTo oben (0, -1)
    • DOWN

      @API public static final Vector DOWN
      Konstante für eine einfache Verschiebung vectorFromThisTo unten (0, 1)
  • Constructor Details

    • Vector

      @API public Vector(float x, float y)
      Konstruktor.
      Parameters:
      x - Bewegungsanteil getX.
      y - Bewegungsanteil getY.
    • Vector

      @API public Vector(double x, double y)
    • Vector

      @API public Vector(Vector start, Vector end)
      Konstruktor.

      Vector wird erzeugt als die nötige Bewegung von einem Point zu einem zweiten.
      Parameters:
      start - Ausgangspunkt
      end - Zielpunkt
  • Method Details

    • of

      @Internal public static Vector of(org.jbox2d.common.Vec2 vector)
    • ofAngle

      public static Vector ofAngle(float angleInDegree)
    • getX

      @API public float getX()
    • getY

      @API public float getY()
    • normalize

      @API public Vector normalize()
      Gibt eine Normierung des Vektors aus. Dies ist ein Vector, der
      • in die selbe Richtung wie der ursprüngliche Vector zeigt.
      • eine Länge von (möglichst) exakt 1 hat.
      Returns:
      Normierter Vector zu diesem Vector
    • divide

      @API public Vector divide(float divisor)
      Teilt die effektive Länge des Vektors durch eine Zahl und kürzt dadurch seine Effektivität.
      Parameters:
      divisor - Hierdurch wird die Länge des Vektors auf der Zeichenebene geteilt.
      Returns:
      Vector-Objekt, das eine Bewegung in dieselbe Richtung beschreibt, allerdings in der Länge gekürzt um den angegebenen Divisor.
      Throws:
      ArithmeticException - Falls divisor 0 ist.
      See Also:
    • getLength

      @API public float getLength()
      Gibt die Länge des Vektors aus.
      Returns:
      Länge des Vektors.
    • negate

      @API public Vector negate()
      Berechnet die Gegenrichtung des Vektors.
      Returns:
      Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
    • negateX

      @API public Vector negateX()
      Berechnet die Gegenrichtung des Vektors in X-Richtung.
      Returns:
      Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
    • negateY

      @API public Vector negateY()
      Berechnet die Gegenrichtung des Vektors in Y-Richtung.
      Returns:
      Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
    • add

      @API public Vector add(float x, float y)
      Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.
      Parameters:
      x - Änderung in X-Richtung
      y - Änderung in Y-Richtung
      Returns:
      Neues Vector-Objekt, das die Summe der beiden ursprünglichen Bewegungen darstellt.
    • add

      @API public Vector add(Vector v)
      Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.
      Parameters:
      v - zweiter Vector
      Returns:
      Neues Vector-Objekt, das die Summe der beiden ursprünglichen Bewegungen darstellt.
    • subtract

      @API public Vector subtract(float x, float y)
      Berechnet die Differenz zwischen diesem und einem weiteren Vector.
      Parameters:
      x - Änderung in X-Richtung
      y - Änderung in Y-Richtung
      Returns:
      Die Differenz der beiden Vektoren ("this - v")
    • subtract

      @API public Vector subtract(Vector v)
      Berechnet die Differenz zwischen diesem und einem weiteren Vector.
      Parameters:
      v - zweiter Vector
      Returns:
      Die Differenz der beiden Vektoren ("this - v")
    • rotate

      @API public Vector rotate(float degree)
      Berechnet eine rotierte Version.
      Parameters:
      degree - Rotation in Grad
      Returns:
      Neues Vector-Objekt, das entsprechend der Gradzahl rotiert wurde.
    • getDistance

      @API public Vector getDistance(Vector v)
      Gibt den Vektor an, der den Punkt, den dieser Vektor beschreibt, zu dem Punkt verschieben würde, den ein weiterer Vektor beschreibt.
      Parameters:
      v - Ein weiterer Vektor.
      Returns:
      Der Vektor, der (this.x|this.y) verschieben würde zu (v.x|v.y).
    • multiply

      @API public Vector multiply(float factor)
      Multipliziert die effektiven Längen beider Anteile des Vektors (getX und getY) mit einem festen Faktor.
      Dadurch entsteht ein neuer Vector mit anderen Werten, welcher zurückgegeben wird.
      Parameters:
      factor - Der Faktor, mit dem die getX- und getY-Werte des Vektors multipliziert werden
      Returns:
      Der Vector mit den multiplizierten Werten
      See Also:
    • multiplyX

      @API public Vector multiplyX(float factor)
      Multipliziert die effektive Länge des X-Anteils des Vektors mit einem festen Faktor.
      Dadurch entsteht ein neuer Vector mit anderen Werten, welcher zurückgegeben wird.
      Parameters:
      factor - Der Faktor, mit dem der x-Wert des Vektors multipliziert wird
      Returns:
      Der Vector mit den multiplizierten Werten
      See Also:
    • multiplyY

      @API public Vector multiplyY(float factor)
      Multipliziert die effektive Länge des X-Anteils des Vektors mit einem festen Faktor.
      Dadurch entsteht ein neuer Vector mit anderen Werten, welcher zurückgegeben wird.
      Parameters:
      factor - Der Faktor, mit dem der x-Wert des Vektors multipliziert wird
      Returns:
      Der Vector mit den multiplizierten Werten
      See Also:
    • getScalarProduct

      @API public float getScalarProduct(Vector v)
      Berechnet das Skalarprodukt von diesem Vector mit einem weiteren. Das Skalarprodukt für zweidimensionale Vektoren ist: (a, b) o (c, d) = a * b + c * d
      Parameters:
      v - zweiter Vector
      Returns:
      Skalarprodukt dieses Vektoren mit dem Vector v.
    • isNull

      @API public boolean isNull()
      Berechnet, ob dieser Vector keine Wirkung hat. Dies ist der Fall, wenn beide Komponenten (getX und getY) 0 sind.
      Returns:
      true, wenn dieser keine Auswirkungen macht, sonst false.
    • isIntegral

      @API public boolean isIntegral()
      Gibt zurück, ob dieser Vector echt ganzzahlig ist, also ob seine tatsächlichen Delta-Werte beide Ganzzahlen sind.
      Returns:
      true, wenn beide Delta-Werte dieses Punktes ganzzahlig sind, sonst false.
    • getDirection

      @API public Direction getDirection()
      Berechnet die Richtung des Vektors, in die er wirkt.
      Returns:
      Der Wert der Konstanten, die diese Bewegung wiederspiegelt.
    • equals

      @API public boolean equals(Object o)
      Prüft, ob ein beliebiges Objekt gleich diesem Vector ist.

      Zwei Vektoren gelten als gleich, wenn getX und getY der beiden Vektoren übereinstimmen.
      Overrides:
      equals in class Object
      Parameters:
      o - Das auf Gleichheit mit diesem zu überprüfende Objekt.
      Returns:
      true, wenn beide Vektoren gleich sind, sonst false.
    • clone

      public Vector clone() throws CloneNotSupportedException
      Throws:
      CloneNotSupportedException
    • toString

      public String toString()
      Gibt die String-Repräsentation dieses Objektes aus.

      Diese Methode sollte nur zu Debugging-Zwecken benutzt werden.

      Overrides:
      toString in class Object
      Returns:
      String-Repräsentation dieses Vektors
    • getManhattanLength

      @API public float getManhattanLength()
      Gibt die Manhattan-Länge des Vektors zurück. Diese ist für v=(a,b) definiert als a+b .
      Returns:
      Die Summe von delta X und delta Y des Vektors.
    • getAngle

      @API public float getAngle(Vector other)
      Berechnet den Winkel zwischen diesem Vector und einem weiteren. Hierzu wird diese Formel verwendet:
      cos t = [a o b] / [|a| * |b|]
      • cos ist der Kosinus
      • t ist der gesuchte Winkel
      • a und b sind die Vektoren
      • |a| ist die Länge des Vektors a
      Parameters:
      other - Ein zweiter Vector.
      Returns:
      Der Winkel zwischen diesem Vector und dem zweiten. Ist zwischen 0 und 180.
    • toVec2

      @Internal public org.jbox2d.common.Vec2 toVec2()
    • isNaN

      @API public boolean isNaN()