Package ea
Class Vector
java.lang.Object
ea.Vector
- All Implemented Interfaces:
Cloneable
Beschreibt einen zweidimensionalen Vektor auf der Zeichenebene.
Diese Klasse wird für alle Positions- und Richtungsangaben genutzt.
- Author:
- Michael Andonie
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic 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 -
Method Summary
Modifier and TypeMethodDescriptionadd
(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.clone()
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
getX()
float
getY()
boolean
Gibt zurück, ob dieser Vector echt ganzzahlig ist, also ob seine tatsächlichen Delta-Werte beide Ganzzahlen sind.boolean
isNaN()
boolean
isNull()
Berechnet, ob dieser Vector keine Wirkung hat.multiply
(float factor) Multipliziert die effektiven Längen beider Anteile des Vektors (getX
undgetY
) 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.negate()
Berechnet die Gegenrichtung des Vektors.negateX()
Berechnet die Gegenrichtung des Vektors in X-Richtung.negateY()
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.toString()
Gibt die String-Repräsentation dieses Objektes aus.org.jbox2d.common.Vec2
toVec2()
-
Field Details
-
NULL
Konstante für einen "bewegungslosen" Vector (0, 0) -
RIGHT
Konstante für eine einfache Verschiebung vectorFromThisTo rechts (1, 0) -
LEFT
Konstante für eine einfache Verschiebung vectorFromThisTo links (-1, 0) -
UP
Konstante für eine einfache Verschiebung vectorFromThisTo oben (0, -1) -
DOWN
Konstante für eine einfache Verschiebung vectorFromThisTo unten (0, 1)
-
-
Constructor Details
-
Vector
@API public Vector(float x, float y) Konstruktor.- Parameters:
x
- BewegungsanteilgetX
.y
- BewegungsanteilgetY
.
-
Vector
@API public Vector(double x, double y) -
Vector
Konstruktor.
Vector wird erzeugt als die nötige Bewegung von einem Point zu einem zweiten.- Parameters:
start
- Ausgangspunktend
- Zielpunkt
-
-
Method Details
-
of
-
ofAngle
-
getX
@API public float getX() -
getY
@API public float getY() -
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
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
- Fallsdivisor
0
ist.- See Also:
-
getLength
@API public float getLength()Gibt die Länge des Vektors aus.- Returns:
- Länge des Vektors.
-
negate
Berechnet die Gegenrichtung des Vektors.- Returns:
- Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
-
negateX
Berechnet die Gegenrichtung des Vektors in X-Richtung.- Returns:
- Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
-
negateY
Berechnet die Gegenrichtung des Vektors in Y-Richtung.- Returns:
- Neues Vector-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
-
add
Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.- Parameters:
x
- Änderung in X-Richtungy
- Änderung in Y-Richtung- Returns:
- Neues Vector-Objekt, das die Summe der beiden ursprünglichen Bewegungen darstellt.
-
add
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
Berechnet die Differenz zwischen diesem und einem weiteren Vector.- Parameters:
x
- Änderung in X-Richtungy
- Änderung in Y-Richtung- Returns:
- Die Differenz der beiden Vektoren (
"this - v"
)
-
subtract
Berechnet die Differenz zwischen diesem und einem weiteren Vector.- Parameters:
v
- zweiter Vector- Returns:
- Die Differenz der beiden Vektoren (
"this - v"
)
-
rotate
Berechnet eine rotierte Version.- Parameters:
degree
- Rotation in Grad- Returns:
- Neues Vector-Objekt, das entsprechend der Gradzahl rotiert wurde.
-
getDistance
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
Multipliziert die effektiven Längen beider Anteile des Vektors (getX
undgetY
) mit einem festen Faktor.
Dadurch entsteht ein neuer Vector mit anderen Werten, welcher zurückgegeben wird.- Parameters:
factor
- Der Faktor, mit dem diegetX
- undgetY
-Werte des Vektors multipliziert werden- Returns:
- Der Vector mit den multiplizierten Werten
- See Also:
-
multiplyX
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
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
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
undgetY
) 0 sind.- Returns:
true
, wenn dieser keine Auswirkungen macht, sonstfalse
.
-
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, sonstfalse
.
-
getDirection
Berechnet die Richtung des Vektors, in die er wirkt.- Returns:
- Der Wert der Konstanten, die diese Bewegung wiederspiegelt.
-
equals
Prüft, ob ein beliebiges Objekt gleich diesem Vector ist.
Zwei Vektoren gelten als gleich, wenngetX
undgetY
der beiden Vektoren übereinstimmen. -
clone
- Throws:
CloneNotSupportedException
-
toString
Gibt die String-Repräsentation dieses Objektes aus.Diese Methode sollte nur zu Debugging-Zwecken benutzt werden.
-
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
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()
-