Class Vector
- All Implemented Interfaces:
Cloneable
- Author:
- Michael Andonie
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final VectorKonstante für eine einfache Verschiebung nach unten (0, 1).static final VectorKonstante für eine einfache Verschiebung nach links (-1, 0).static final VectorKonstante für einen „bewegungslosen“ Vektor (0, 0).static final VectorKonstante für eine einfache Verschiebung nach rechts (1, 0).static final VectorKonstante für eine einfache Verschiebung nach oben (0, -1). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd(double x, double y) Berechnet die effektive Bewegung, die dieser Vektor und ein weiterer zusammen ausüben.Berechnet die effektive Bewegung, die dieser Vector und ein weiterer zusammen ausüben.doubleangle()Gibt den Winkel dieses Vektors in Grad zurück.doubleBerechnet den Winkel zwischen diesem Vektor und einem weiteren in Grad.clone()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.divide(double divisor) Teilt die effektive Länge des Vektors durch eine Zahl und kürzt dadurch seine Effektivität.booleanPrüft, ob ein beliebiges Objekt gleich diesem Vektor ist.doublegetScalarProduct(Vector other) Berechnet das Skalarprodukt von diesem Vektor mit einem weiteren.booleanGibt zurück, ob dieser Vektor echt ganzzahlig ist, also ob seine tatsächlichen Delta-Werte beide Ganzzahlen sind.booleanisNaN()booleanisNull()Berechnet, ob dieser Vektor keine Wirkung hat.doublelength()Gibt die Länge des Vektors aus.doubleGibt die euklidische Distanz zwischen diesem Vektor und dem angegebenen Vektor zurück.doubleGibt die Manhattan-Länge des Vektors zurück.multiply(double factor) Multipliziert die effektiven Längen beider Anteile des Vektors (xundy) mit einem festen Faktor.multiplyX(double factor) Multipliziert die effektive Länge des x-Anteils des Vektors mit einem festen Faktor.multiplyY(double factor) Multipliziert die effektive Länge des y-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 VectorofAngle(double angle) Berechnet anhand eines Winkels, der in Grad angegeben ist, den entsprechenden Vektor.doubleradians()Gibt den Winkel dieses Vektors in Bogenmaß zurück.rotate(double angle) Berechnet eine rotierte Version.subtract(double x, double y) Berechnet die Differenz zwischen diesem und einem weiteren Vektor.Berechnet die Differenz zwischen diesem und einem weiteren Vektor.toString()Gibt die String-Repräsentation dieses Objektes aus.static Vectorv(double x, double y) Erzeugt einen neuen Vektor.static Vectorvector(double x, double y) Erzeugt einen neuen Vektor.doublex()Gibt den Bewegungsanteil inx-Richtung zurück.intx(double scaleFactor) Gibt den Bewegungsanteil inx-Richtung als Ganzzahl zurück.doubley()Gibt den Bewegungsanteil iny-Richtung zurück.inty(double scaleFactor) Gibt den Bewegungsanteil iny-Richtung multipliziert mit Pixel per Meter zurück.
-
Field Details
-
NULL
Konstante für einen „bewegungslosen“ Vektor (0, 0). -
RIGHT
Konstante für eine einfache Verschiebung nach rechts (1, 0). -
LEFT
Konstante für eine einfache Verschiebung nach links (-1, 0). -
UP
Konstante für eine einfache Verschiebung nach oben (0, -1). -
DOWN
Konstante für eine einfache Verschiebung nach unten (0, 1).
-
-
Constructor Details
-
Vector
Erzeugt einen neuen Vektor.- Parameters:
x- Der Bewegungsanteil inx-Richtung.y- Der Bewegungsanteil iny-Richtung.
-
Vector
Erzeugt einen Vektor als Bewegung von einem Ausgangspunkt zu einem Zielpunkt.- Parameters:
start- Der Ausgangspunkt.end- Der Zielpunkt.
-
-
Method Details
-
ofAngle
Berechnet anhand eines Winkels, der in Grad angegeben ist, den entsprechenden Vektor.- Der Vektor für 0 Grad ist [x = 1; y = 0]
- Der Vektor für 90 Grad ist [x = 0; y = 1]
- Der Vektor für 180 Grad ist [x = -1; y = 0]
- Der Vektor für 270 Grad ist [x = 0; y = -1]
- Der Vektor für 360 Grad ist [x = 1; y = 0]
- Parameters:
angle- Der Winkel in Grad.- Returns:
- Der Vektor, der sich aus einem Winkel berechnet.
-
x
Gibt den Bewegungsanteil inx-Richtung zurück.- Returns:
- Der Bewegungsanteil in
x-Richtung.
-
x
Gibt den Bewegungsanteil inx-Richtung als Ganzzahl zurück.- Parameters:
scaleFactor- Der Skalierungsfaktor, mit dem diex-Koordinate multipliziert wird.- Returns:
- Der gerundete skalierte Bewegungsanteil in
x-Richtung. - Since:
- 0.36.0
-
y
Gibt den Bewegungsanteil iny-Richtung zurück.- Returns:
- Der Bewegungsanteil in
y-Richtung.
-
y
Gibt den Bewegungsanteil iny-Richtung multipliziert mit Pixel per Meter zurück.- Parameters:
scaleFactor- Der Skalierungsfaktor, mit dem diey-Koordinate multipliziert wird.- Returns:
- Der gerundete skalierte Bewegungsanteil in
y-Richtung. - Since:
- 0.36.0
-
normalize
Gibt eine Normierung des Vektors aus. Dies ist ein Vektor, der- in dieselbe Richtung wie der ursprüngliche Vektor zeigt.
- eine Länge von (möglichst) exakt 1 hat.
- Der Null-Vektor bleibt der Null-Vektor.
- Returns:
- Der Normierte Vektor zu diesem Vektor.
-
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:
- Das Vektor-Objekt, das eine Bewegung in dieselbe Richtung beschreibt, allerdings in der Länge gekürzt um den angegebenen Divisor.
- Throws:
ArithmeticException- Fallsdivisor0ist.- See Also:
-
length
Gibt die Länge des Vektors aus.- Returns:
- Die Länge des Vektors.
-
length
Gibt die euklidische Distanz zwischen diesem Vektor und dem angegebenen Vektor zurück.- Parameters:
other- Ein weiterer Vektor.- Returns:
- die Länge des Differenzvektors (euklidische Distanz)
- Throws:
NullPointerException- falls other null ist- Since:
- 0.37.0
-
negate
Berechnet die Gegenrichtung des Vektors.- Returns:
- Ein neues Vektor-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
-
negateX
Berechnet die Gegenrichtung des Vektors in X-Richtung.- Returns:
- Ein neues Vektor-Objekt, das genau die Gegenbewegung zu dem eigenen beschreibt.
-
negateY
Berechnet die Gegenrichtung des Vektors in Y-Richtung.- Returns:
- Ein neuer Vektor, der genau die Gegenbewegung zum eigenen Vektor beschreibt.
-
add
Berechnet die effektive Bewegung, die dieser Vektor und ein weiterer zusammen ausüben.- Parameters:
x- Die Änderung in X-Richtung.y- Die Änderung in Y-Richtung.- Returns:
- Ein neues Vektor-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:
other- Ein weiterer Vektor.- Returns:
- Ein neues Vektor-Objekt, das die Summe der beiden ursprünglichen Bewegungen darstellt.
-
subtract
Berechnet die Differenz zwischen diesem und einem weiteren Vektor.- 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 Vektor.- Parameters:
other- Ein weiterer Vektor.- Returns:
- Die Differenz der beiden Vektoren (
this - other)
-
rotate
Berechnet eine rotierte Version.- Parameters:
angle- Der Winkel der Rotation in Grad.- Returns:
- Ein neues Vektor-Objekt, das entsprechend der Gradzahl rotiert wurde.
-
distance
Gibt den Vektor an, der den Punkt, den dieser Vektor beschreibt, zu dem Punkt verschieben würde, den ein weiterer Vektor beschreibt.- Parameters:
other- 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 (xundy) mit einem festen Faktor.Dadurch entsteht ein neuer Vektor mit anderen Werten, welcher zurückgegeben wird.
- Parameters:
factor- Der Faktor, mit dem diex- undy-Werte des Vektors multipliziert werden.- Returns:
- Der Vektor 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 Vektor mit anderen Werten, welcher zurückgegeben wird.
- Parameters:
factor- Der Faktor, mit dem der x-Wert des Vektors multipliziert wird.- Returns:
- Der Vektor mit den multiplizierten Werten.
- See Also:
-
multiplyY
Multipliziert die effektive Länge des y-Anteils des Vektors mit einem festen Faktor.Dadurch entsteht ein neuer Vektor mit anderen Werten, welcher zurückgegeben wird.
- Parameters:
factor- Der Faktor, mit dem der y-Wert des Vektors multipliziert wird.- Returns:
- Der Vektor mit den multiplizierten Werten.
- See Also:
-
getScalarProduct
Berechnet das Skalarprodukt von diesem Vektor mit einem weiteren.Das Skalarprodukt für zweidimensionale Vektoren ist:
(a, b) o (c, d) = a * b + c * d- Parameters:
other- Ein weiterer Vektor.- Returns:
- Skalarprodukt dieser Vektoren mit dem Vektor
v.
-
isNull
Berechnet, ob dieser Vektor keine Wirkung hat. Dies ist der Fall, wenn beide Komponenten (xundy) 0 sind.- Returns:
true, wenn dieser keine Auswirkungen macht, sonstfalse.
-
isIntegral
Gibt zurück, ob dieser Vektor echt ganzzahlig ist, also ob seine tatsächlichen Delta-Werte beide Ganzzahlen sind.- Returns:
true, wenn beide Delta-Werte dieses Punktes ganzzahlig sind, sonstfalse.
-
direction
Berechnet die Richtung des Vektors, in die er wirkt.- Returns:
- Der Wert der Konstanten, die diese Bewegung widerspiegelt.
-
equals
Prüft, ob ein beliebiges Objekt gleich diesem Vektor ist.
Zwei Vektoren gelten als gleich, wennxundyder beiden Vektoren übereinstimmen. -
clone
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
manhattanLength
Gibt die Manhattan-Länge des Vektors zurück. Diese ist fürv=(a, b)definiert alsa+b.- Returns:
- Die Summe von delta X und delta Y des Vektors.
-
angle
Gibt den Winkel dieses Vektors in Grad zurück.Der Wert wird durch Umrechnung des von
radians()gelieferten Winkels (Bogenmaß) mitMath.toDegrees(double)in Grad ermittelt. Der genaue Wertebereich hängt vom Rückgabewert vonradians()ab (z. B. (-π, π] → (-180°, 180°], [0, 2π) → [0°, 360°)).- Returns:
- Winkel des Vektors in Grad
- Since:
- 0.37.0
-
radians
Gibt den Winkel dieses Vektors in Bogenmaß zurück.Der Winkel ist derjenige zwischen der positiven x-Achse und dem Vektor (x, y), gemessen gegen den Uhrzeigersinn. Der zurückgegebene Wert liegt im Bereich
[-π, π].Für den Nullvektor
(0, 0)wird0zurückgegeben.- Returns:
- Winkel in Bogenmaß im Bereich
[-π, π] - Since:
- 0.37.0
-
angle
Berechnet den Winkel zwischen diesem Vektor und einem weiteren in Grad.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 weiterer Vektor.- Returns:
- Der Winkel zwischen diesem Vektor und dem zweiten.
-
isNaN
-
vector
Erzeugt einen neuen Vektor.Diese statische Methode kann dazu benutzt werden, um über einen statischen Import dieser Methode
import static pi.Vector.vector;mit etwas weniger Schreibarbeit einen neuen Vektor zu erzeugen. Anstatt
new Vector(1, 2);kann dann
vector(1, 2);geschrieben werden.
- Parameters:
x- Der Bewegungsanteil inx-Richtung.y- Der Bewegungsanteil iny-Richtung.
-
v
Erzeugt einen neuen Vektor.Diese statische Methode kann dazu benutzt werden, um über einen statischen Import dieser Methode
import static pi.Vector.v;mit etwas weniger Schreibarbeit einen neuen Vektor zu erzeugen. Anstatt
new Vector(1, 2);kann dann
v(1, 2);geschrieben werden.
- Parameters:
x- Der Bewegungsanteil inx-Richtung.y- Der Bewegungsanteil iny-Richtung.
-
toString
Gibt die String-Repräsentation dieses Objektes aus.Diese Methode sollte nur zu Debugging-Zwecken benutzt werden.
-