EOS 2  1.1.0
Einfache Objektbasierte Sprache
Öffentliche Methoden | Statische öffentliche Attribute | Aufstellung aller Elemente
de.lathanda.eos.base.math.Vector Klassenreferenz

Vektor. Mehr ...

Öffentliche Methoden

 Vector (double dX, double dY)
 
 Vector (Point p)
 
 Vector (double angle)
 
 Vector (Point A, Point B)
 
 Vector (Vector v)
 
Vector multiply (double k)
 
Vector negative ()
 
double getLength ()
 
double getSquareLength ()
 
Vector setLength (double l)
 
double getdx ()
 
double getdy ()
 
Vector setdx (double newdx)
 
Vector setdy (double newdy)
 
Point asPoint ()
 
Vector add (Vector v)
 
Vector substract (Vector v)
 
Vector substract (double dx, double dy)
 
Vector add (double x, double y)
 
double getAngle ()
 
double getAngleOrdernumber ()
 
Vector rotate (double dAngle)
 
Vector invertX ()
 
Vector invertY ()
 
double dotProduct (Vector b)
 
double dotProduct (double x, double y)
 
Vector normalize ()
 
Vector rotateRightAngleCounterClockwise ()
 
double getPerpendicularLength (Vector base)
 
double getProjectionLength (Vector base)
 
double getParallelogramArea (Vector a)
 
double crossproduct (Vector b)
 
Vector getPerpendicular (Vector base)
 
boolean isZero ()
 
String toString ()
 
Vector getProjection (Vector base)
 
Vector addLength (double l)
 
Vector restrict (double min, double max)
 
void render (Picture g, Point p, double scale, double arrowLength)
 

Statische öffentliche Attribute

static Vector ZERO = new Vector(0, 0)
 
static Vector BASE1 = new Vector(1, 0)
 
static Vector BASE2 = new Vector(0, 1)
 

Ausführliche Beschreibung

Vektor.

Die Klasse repräsentiert einen Vektor mit sehr vielen Transformationsmethoden. Die Methoden decken einen großen Teil der analytischen Geometrie ab. Grundsätzlich ist es unmöglich die Koordinaten eines Vektors zu verändern, wenn er einmal erzeugt wurde. Alle Berechnungen liefern neue Vektorobjekte. Soll eine Vektor verändert werden muss man zB schreiben

Vector a = new Vector (1,0);
Vector b = new Vector (0,1);
a = a.add(b);
Vector(double dX, double dY)
Definition: Vector.java:120

Anwendungsbeispiele

Autor
Lathanda

Definiert in Zeile 100 der Datei Vector.java.

Beschreibung der Konstruktoren und Destruktoren

◆ Vector() [1/5]

de.lathanda.eos.base.math.Vector.Vector ( double  dX,
double  dY 
)

Neuer Vektor

Parameter
dXx Wert
dYy Wert

Definiert in Zeile 120 der Datei Vector.java.

◆ Vector() [2/5]

de.lathanda.eos.base.math.Vector.Vector ( Point  p)

Konvertiert einen Punkt in einen Ortsvektor

Parameter
pPunkt

Definiert in Zeile 130 der Datei Vector.java.

◆ Vector() [3/5]

de.lathanda.eos.base.math.Vector.Vector ( double  angle)

Neuer Richtungsvektor der Länge 1.

Parameter
angleRichtung im Bogenmaß 0 => (1,0)

Definiert in Zeile 140 der Datei Vector.java.

◆ Vector() [4/5]

de.lathanda.eos.base.math.Vector.Vector ( Point  A,
Point  B 
)

Neuer Differenzvektor von A nach B

Parameter
AAnfangspunkt
BEndpunkt

Definiert in Zeile 151 der Datei Vector.java.

◆ Vector() [5/5]

de.lathanda.eos.base.math.Vector.Vector ( Vector  v)

Kopiert einen Vektor

Parameter
vOriginal Vektor

Definiert in Zeile 161 der Datei Vector.java.

Dokumentation der Elementfunktionen

◆ add() [1/2]

Vector de.lathanda.eos.base.math.Vector.add ( double  x,
double  y 
)

Vektoraddition mit Koordinatenpaar (x,y).

Parameter
xx Koordinate
yy Koordinate
Rückgabe
Ergebnis der Addition..

Definiert in Zeile 273 der Datei Vector.java.

◆ add() [2/2]

Vector de.lathanda.eos.base.math.Vector.add ( Vector  v)

Vektoraddition.

Parameter
vZweiter Vektor
Rückgabe
Ergebnis der Addition.

Definiert in Zeile 249 der Datei Vector.java.

◆ addLength()

Vector de.lathanda.eos.base.math.Vector.addLength ( double  l)

Addiert den Wert zur Länge des Vektors. Wird die Länge dadurch negativ wird der Vektor (0,0).

Parameter
lLänge
Rückgabe
Vektor mit neuer Länge

Definiert in Zeile 516 der Datei Vector.java.

◆ asPoint()

Point de.lathanda.eos.base.math.Vector.asPoint ( )

Definiert in Zeile 240 der Datei Vector.java.

◆ crossproduct()

double de.lathanda.eos.base.math.Vector.crossproduct ( Vector  b)

Berechnet die Vorzeichen behaftet Fläche des Parallelogramms, welches die beiden Vektoren aufspannen. Der Wert ist positiv, wenn die Fläche links von diesem Vektor liegt. Dies erlaubt Orientierungstest. Die Orientierung hängt jedoch von der Orientierung der Achsen ab, daher sollte man die Methode einfach ausprobieren, das Verhalten bleibt wie es ist.

Parameter
bZweiter Vektor
Rückgabe
Vorzeichen behaftete Fläche des aufgespannten Parallelogramms

Definiert in Zeile 455 der Datei Vector.java.

◆ dotProduct() [1/2]

double de.lathanda.eos.base.math.Vector.dotProduct ( double  x,
double  y 
)

Skalarprodukt mit einem Koordinatenpaar (x,y)

Parameter
xx Wert
yy Wert
Rückgabe
Skalarprodukt

Definiert in Zeile 370 der Datei Vector.java.

◆ dotProduct() [2/2]

double de.lathanda.eos.base.math.Vector.dotProduct ( Vector  b)

Skalarprodukt

Parameter
bZweiter Vektor
Rückgabe
Skalarprodukt

Definiert in Zeile 359 der Datei Vector.java.

◆ getAngle()

double de.lathanda.eos.base.math.Vector.getAngle ( )

Der Winkel wird ausgehend von der x-Achse in Richtung der y-Achse bestimmt.

Rückgabe
Winkel für Polarkoordinaten

Definiert in Zeile 283 der Datei Vector.java.

◆ getAngleOrdernumber()

double de.lathanda.eos.base.math.Vector.getAngleOrdernumber ( )

Die Funktion liefert einen approximierten Wert für den Winkel, welcher streng monoton mit dem Winkel steigt. Dieser Wert ist somit geeignet um Vektoren nach ihrem Winkel zu sortieren. Im Unterschied zum exakten Winkel ist diese Funktion sehr viel schneller. Die Werte liegen im Bereich von 0 - 4, wobei jeder Quadrat jeweil 1 umfasst. +180° bedeutet +2 modulo 4. Multipliziert man den Wert mit 90°, so erhält man einen Winkel der weniger als 5° vom echten Winkel abweicht.

Rückgabe

Definiert in Zeile 312 der Datei Vector.java.

◆ getdx()

double de.lathanda.eos.base.math.Vector.getdx ( )

Der x Wert des Vektors

Rückgabe
x Wert

Definiert in Zeile 222 der Datei Vector.java.

◆ getdy()

double de.lathanda.eos.base.math.Vector.getdy ( )

Der y Wert des Vektors

Rückgabe
y Wert

Definiert in Zeile 231 der Datei Vector.java.

◆ getLength()

double de.lathanda.eos.base.math.Vector.getLength ( )

Berechnet die Länge des Vektors.

Rückgabe
Die Länge des Vektors

Definiert in Zeile 191 der Datei Vector.java.

◆ getParallelogramArea()

double de.lathanda.eos.base.math.Vector.getParallelogramArea ( Vector  a)

Berechnet die Fläche des Parallelogramms, welches die beiden Vektoren aufspannen.

Parameter
aZweiter Vektor
Rückgabe
Fläche des aufgespannten Parallelogramms

Definiert in Zeile 441 der Datei Vector.java.

◆ getPerpendicular()

Vector de.lathanda.eos.base.math.Vector.getPerpendicular ( Vector  base)

Berechnet den Lot Vektor von der Spitze dieses Vektors auf den Basisvektor. Ob der Vektor zur Spitze zeigt oder zur Basis hängt von der Orientierung ab.

Parameter
baseBasisvektor
Rückgabe
Lotvektor

Definiert in Zeile 467 der Datei Vector.java.

◆ getPerpendicularLength()

double de.lathanda.eos.base.math.Vector.getPerpendicularLength ( Vector  base)

Berechnet den Abstand der Spitze dieses Vektors zum Basisvektor (base). Die beiden Vektoren spannen dabei ein Dreieck auf. Der berechnete Wert ist die Höhe von der Spitze dieses Vektors auf die Seite die durch den Basisvektor gebildet wird.

Parameter
baseLänge der senkrechten auf dem Basisvektor
Rückgabe
Länge des Lotes

Definiert in Zeile 409 der Datei Vector.java.

◆ getProjection()

Vector de.lathanda.eos.base.math.Vector.getProjection ( Vector  base)

Projeziert diesen Vektor auf den Basisvektor (base) und den Projezierten Vektor. Es wird somit der Schattenvektor berechnet.

Parameter
baseVektor auf den projiziert wird
Rückgabe
Projektionvektor

Definiert in Zeile 504 der Datei Vector.java.

◆ getProjectionLength()

double de.lathanda.eos.base.math.Vector.getProjectionLength ( Vector  base)

Projeziert diesen Vektor auf den Basisvektor (base) und ermittelt die Länge. Es wird somit die Länge des Schattens berechnet.

Parameter
baseVektor auf den projiziert wird.
Rückgabe
Länge der Projektion auf den Basisvektor

Definiert in Zeile 425 der Datei Vector.java.

◆ getSquareLength()

double de.lathanda.eos.base.math.Vector.getSquareLength ( )

Berechnet die Länge des Vektors im Quadrat.

Rückgabe
Die Länge des Vektors

Definiert in Zeile 199 der Datei Vector.java.

◆ invertX()

Vector de.lathanda.eos.base.math.Vector.invertX ( )

Definiert in Zeile 346 der Datei Vector.java.

◆ invertY()

Vector de.lathanda.eos.base.math.Vector.invertY ( )

Definiert in Zeile 349 der Datei Vector.java.

◆ isZero()

boolean de.lathanda.eos.base.math.Vector.isZero ( )

Prüft ob der Vektor der 0 Vektor ist. Dies kann unerwartete Effekte auslösen, da eine Gleichheit mir 0 eher selten der Fall ist. Wenn Probleme auftreten kann als alternative die Länge geprüft werden. Etwa getLength() < 0.1

Rückgabe
@

return Wahr, wenn (0,0)

Definiert in Zeile 481 der Datei Vector.java.

◆ multiply()

Vector de.lathanda.eos.base.math.Vector.multiply ( double  k)

S-Multiplikation. Multipliziert einen Vektor mit einer Zahl. Der Vektor wird dabei verändert.

Parameter
kSkalar
Rückgabe
Neuer Vektor um k verlängert.

Definiert in Zeile 173 der Datei Vector.java.

◆ negative()

Vector de.lathanda.eos.base.math.Vector.negative ( )

Gegenvektor.

Rückgabe
Neuer Vektor negativer Länge.

Definiert in Zeile 182 der Datei Vector.java.

◆ normalize()

Vector de.lathanda.eos.base.math.Vector.normalize ( )

Ein neuer Vektor mit gleicher Richtung aber der Länge 1.

Rückgabe
Normalisierter Vektor.

Definiert in Zeile 379 der Datei Vector.java.

◆ render()

void de.lathanda.eos.base.math.Vector.render ( Picture  g,
Point  p,
double  scale,
double  arrowLength 
)

Zeichnet den Vector als Pfeil. Bei Vektoren die Bewegungen darstellen bietet sich an als Maßstab die Frequenz zu wählen, in der Regel 30. Die Zeichnung entspricht dann der Bewegung pro Sekunde. Bei echten Verschiebungsvektoren sollte der Maßstab 1 gewählt werden, etwa um Rechnungen zu visualisieren. Wird ein dickerer oder Farbiger Pfeil benötigt, so muss das das Graphikobjekt vorher entsprechende verändert werden.

Parameter
gGrafikobjekt
pAusgangspunkt des Vektors
scaleMaßstab (~30 Bewegung, 1 Verschiebung)
arrowLengthLänge der Pfeilspitze, (~12) die Spitze is immer doppelt so lang wie breit. Bei sehr kurzen Vektoren wird die Pfeilspitze durch die Länge des Vektors begrenzt.

Definiert in Zeile 561 der Datei Vector.java.

◆ restrict()

Vector de.lathanda.eos.base.math.Vector.restrict ( double  min,
double  max 
)

Erzeugt einen Vektor dessen Länge innerhalb der Schranken liegt. Dies kann sinnvoll sein, wenn eine Bewegung eine gewisse Geschwindigkeit nicht überschreiten bzw. unterschreiten soll.

Parameter
minMinimalwert der Länge (-1 für unbegrenzt)
maxMaximalwert der Länge (Double.POSITIVE_INFINITY für ungerenzt)
Rückgabe

Definiert in Zeile 534 der Datei Vector.java.

◆ rotate()

Vector de.lathanda.eos.base.math.Vector.rotate ( double  dAngle)

Erzeugt einen um den Winkel (im Bogenmaß) rotieren Vektor. Im Standardkoordinatensystem gegen den Uhrzeigersinn. Diese Methode sollte nicht für rechtwinklige Drehungen verwendet werden, da sie rundet. Der Bildschirm ist anders orientiert!

Parameter
dAngleRoationswinkel
Rückgabe
Gedrehter Vector.

Definiert in Zeile 337 der Datei Vector.java.

◆ rotateRightAngleCounterClockwise()

Vector de.lathanda.eos.base.math.Vector.rotateRightAngleCounterClockwise ( )

Dreht den Vektor in einem Standard Koordinatensystem gegen den Uhrzeigersinn. Die Orientierung hängt jedoch von der Orientierung der Achsen ab, daher sollte man die Methode einfach ausprobieren, das Verhalten bleibt wie es ist. Der Vektor wird dabei verändert.

Rückgabe
Um 90° gedrehter Vektor.

Definiert in Zeile 396 der Datei Vector.java.

◆ setdx()

Vector de.lathanda.eos.base.math.Vector.setdx ( double  newdx)

Definiert in Zeile 234 der Datei Vector.java.

◆ setdy()

Vector de.lathanda.eos.base.math.Vector.setdy ( double  newdy)

Definiert in Zeile 237 der Datei Vector.java.

◆ setLength()

Vector de.lathanda.eos.base.math.Vector.setLength ( double  l)

Erzeugt einen neuen Vektor der gewünschten Länge.

Parameter
lNeue Länge
Rückgabe
Ein neuer Vektor der Länge l.

Definiert in Zeile 209 der Datei Vector.java.

◆ substract() [1/2]

Vector de.lathanda.eos.base.math.Vector.substract ( double  dx,
double  dy 
)

Definiert in Zeile 263 der Datei Vector.java.

◆ substract() [2/2]

Vector de.lathanda.eos.base.math.Vector.substract ( Vector  v)

Vektorsubtraction.

Parameter
vZweiter Vektor
Rückgabe
Ergebnis der Differenz.

Definiert in Zeile 259 der Datei Vector.java.

◆ toString()

String de.lathanda.eos.base.math.Vector.toString ( )

Debugginginformationen

Rückgabe
Zeichenkette für Fehlersuche

Definiert in Zeile 491 der Datei Vector.java.

Dokumentation der Datenelemente

◆ BASE1

Vector de.lathanda.eos.base.math.Vector.BASE1 = new Vector(1, 0)
static

Definiert in Zeile 103 der Datei Vector.java.

◆ BASE2

Vector de.lathanda.eos.base.math.Vector.BASE2 = new Vector(0, 1)
static

Definiert in Zeile 104 der Datei Vector.java.

◆ ZERO

Vector de.lathanda.eos.base.math.Vector.ZERO = new Vector(0, 0)
static

Definiert in Zeile 102 der Datei Vector.java.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
Impressum