Package hoverball.math
Class Matrix
java.lang.Object
hoverball.math.Matrix
public final class Matrix
extends java.lang.Object
Die Klasse Matrix repräsentiert eine reelle 3 x 3-Matrix.
Im Folgenden bedeuten:
A, B, M - Matrizen
a, b, c - Vektoren (als Spaltenvektoren)
x, y, z - reelle Zahlen (als Koordinaten)
v - Vektor
r - reelle Zahl
a ("alpha") - reelle Zahl (als Winkel)
x, y, z - die Einheitsvektoren
M - die Matrix des Matrix-Objekts selbst
Beachte: Anders als bei der Standard-Notation der Mathematik wird die Verknüpfung von Matrizen hier von links nach rechts gelesen. In Hoverball heißt es für einen Vektor v, auf den die Matrix A und anschließend die Matrix B angewendet werden soll, also v A B statt B A v.
Operator Overloading für Groovy, Scala, Kotlin und Jython wird unterstützt.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description Matrix()
Erzeugt eine Einheitsmatrix.Matrix(double r)
Erzeugt ein Vielfaches der Einheitsmatrix.Matrix(double ax, double ay, double az, double bx, double by, double bz, double cx, double cy, double cz)
Erzeugt eine Matrix mit den Koordinaten ((ax,ay,az), (bx,by,bz), (cx,cy,cz)).Matrix(Matrix M)
Erzeugt eine Matrix gleich einer anderen Matrix.Matrix(Vector a, Vector b, Vector c)
Erzeugt eine Matrix mit den Spaltenvektoren (a,b,c). -
Method Summary
Modifier and Type Method Description Matrix
add(Matrix B)
Addiert eine Matrix [ M = M + B ].static Matrix
add(Matrix A, Matrix B)
Addiert zwei Matrizen [ = A + B ].Matrix
conj(Matrix B)
Konjugiert mit einer Matrix [ M = B^ M B ].static Matrix
conj(Matrix A, Matrix B)
Konjugiert eine Matrix mit einer Matrix [ = B^ A B ].double
det()
Berechnet die Determinante [ = det M ].boolean
equals(java.lang.Object M)
Vergleicht mit einer Matrix [ M = M ?int
hashCode()
Berechnet den Hash-Code [ =####
].Matrix
inv()
Invertiert die Matrix [ M = M^ ].static Matrix
inv(Matrix M)
Berechnet die inverse Matrix [ = M^ ].Matrix
mul(double r)
Multipliziert mit einer reellen Zahl [ M = M r ].Matrix
mul(Matrix B)
Entspricht der Methode mulR(Matrix).static Matrix
mul(Matrix M, double r)
Multipliziert eine Matrix mit einer reellen Zahl [ = M r ].static Matrix
mul(Matrix A, Matrix B)
Multipliziert zwei Matrizen [ = A B ].Matrix
mulL(Matrix A)
Multipliziert mit einer Matrix von links [ M = A M ].Matrix
mulR(Matrix B)
Multipliziert mit einer Matrix von rechts [ M = M B ].Matrix
neg()
Negiert die Matrix [ M = -M ].static Matrix
neg(Matrix M)
Berechnet die negierte Matrix [ = -M ].static Matrix
rot(Vector v, double alpha)
Berechnet eine Drehmatrix um eine beliebige Drehachse [ = D (v,a) ].static Matrix
rotX(double alpha)
Berechnet eine Drehmatrix um die x-Achse [ = D (x,a) ].static Matrix
rotY(double alpha)
Berechnet eine Drehmatrix um die y-Achse [ = D (y,a) ].static Matrix
rotZ(double alpha)
Berechnet eine Drehmatrix um die z-Achse [ = D (z,a) ].Matrix
sub(Matrix B)
Subtrahiert eine Matrix [ M = M - B ].static Matrix
sub(Matrix A, Matrix B)
Subtrahiert zwei Matrizen [ = A - B ].java.lang.String
toString()
String-Repräsentation [ = "..." ].Matrix
trans()
Transponiert die Matrix [ M = M ].static Matrix
trans(Matrix M)
Berechnet die transponierte Matrix [ = M ].boolean
zero()
Testet auf null [ M = 0 ?
-
Field Details
-
Constructor Details
-
Matrix
public Matrix()Erzeugt eine Einheitsmatrix. -
Matrix
public Matrix(double r)Erzeugt ein Vielfaches der Einheitsmatrix.- Parameters:
r
- Faktor
-
Matrix
public Matrix(double ax, double ay, double az, double bx, double by, double bz, double cx, double cy, double cz)Erzeugt eine Matrix mit den Koordinaten ((ax,ay,az), (bx,by,bz), (cx,cy,cz)).- Parameters:
ax
- x-Koordinate des ersten Spaltenvektorsay
- y-Koordinate des ersten Spaltenvektorsaz
- z-Koordinate des ersten Spaltenvektorsbx
- x-Koordinate des zweiten Spaltenvektorsby
- y-Koordinate des zweiten Spaltenvektorsbz
- z-Koordinate des zweiten Spaltenvektorscx
- x-Koordinate des dritten Spaltenvektorscy
- y-Koordinate des dritten Spaltenvektorscz
- z-Koordinate des dritten Spaltenvektors
-
Matrix
Erzeugt eine Matrix mit den Spaltenvektoren (a,b,c).- Parameters:
a
- erster Spaltenvektorb
- zweiter Spaltenvektorc
- dritter Spaltenvektor
-
Matrix
Erzeugt eine Matrix gleich einer anderen Matrix.- Parameters:
M
- zu kopierende Matrix
-
-
Method Details
-
hashCode
public int hashCode()Berechnet den Hash-Code [ =####
].- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- den Hash-Code
-
toString
public java.lang.String toString()String-Repräsentation [ = "..." ].- Overrides:
toString
in classjava.lang.Object
- Returns:
- den String
-
equals
public boolean equals(java.lang.Object M)Vergleicht mit einer Matrix [ M = M ? ].- Overrides:
equals
in classjava.lang.Object
- Parameters:
M
- Matrix- Returns:
- die Gleichheit
-
add
Addiert eine Matrix [ M = M + B ].- Parameters:
B
- Matrix- Returns:
- this
-
sub
Subtrahiert eine Matrix [ M = M - B ].- Parameters:
B
- Matrix- Returns:
- this
-
mul
Multipliziert mit einer reellen Zahl [ M = M r ].- Parameters:
r
- reelle Zahl- Returns:
- this
-
mulL
Multipliziert mit einer Matrix von links [ M = A M ].- Parameters:
A
- Matrix- Returns:
- this
-
mulR
Multipliziert mit einer Matrix von rechts [ M = M B ].- Parameters:
B
- Matrix- Returns:
- this
-
mul
Entspricht der Methode mulR(Matrix).- Parameters:
B
- Matrix- Returns:
- this
-
conj
Konjugiert mit einer Matrix [ M = B^ M B ].- Parameters:
B
- Matrix- Returns:
- this
-
inv
Invertiert die Matrix [ M = M^ ].- Returns:
- this
-
neg
Negiert die Matrix [ M = -M ].- Returns:
- this
-
trans
Transponiert die Matrix [ M = M ].- Returns:
- this
-
zero
public final boolean zero()Testet auf null [ M = 0 ? ].- Returns:
- true, falls diese Matrix gleich (0)
-
det
public final double det()Berechnet die Determinante [ = det M ].- Returns:
- das Argument
-
add
Addiert zwei Matrizen [ = A + B ].- Parameters:
A
- MatrixB
- Matrix- Returns:
- die Summe
-
sub
Subtrahiert zwei Matrizen [ = A - B ].- Parameters:
A
- MatrixB
- Matrix- Returns:
- die Differenz
-
neg
Berechnet die negierte Matrix [ = -M ].- Parameters:
M
- Matrix- Returns:
- die negierte Matrix
-
inv
Berechnet die inverse Matrix [ = M^ ].- Parameters:
M
- Matrix- Returns:
- die Inverse
-
trans
Berechnet die transponierte Matrix [ = M ].- Parameters:
M
- Matrix- Returns:
- die Transponierte
-
mul
Multipliziert eine Matrix mit einer reellen Zahl [ = M r ].- Parameters:
M
- Matrixr
- reelle Zahl- Returns:
- das Produkt
-
mul
Multipliziert zwei Matrizen [ = A B ].- Parameters:
A
- MatrixB
- Matrix- Returns:
- das Produkt
-
conj
Konjugiert eine Matrix mit einer Matrix [ = B^ A B ].- Parameters:
A
- MatrixB
- Matrix- Returns:
- die Konjugation
-
rotX
Berechnet eine Drehmatrix um die x-Achse [ = D (x,a) ].- Parameters:
alpha
- Winkel- Returns:
- die Drehmatrix
-
rotY
Berechnet eine Drehmatrix um die y-Achse [ = D (y,a) ].- Parameters:
alpha
- Winkel- Returns:
- die Drehmatrix
-
rotZ
Berechnet eine Drehmatrix um die z-Achse [ = D (z,a) ].- Parameters:
alpha
- Winkel- Returns:
- die Drehmatrix
-
rot
Berechnet eine Drehmatrix um eine beliebige Drehachse [ = D (v,a) ].- Parameters:
v
- Vektor, an dem gedreht wirdalpha
- Winkel- Returns:
- die Drehmatrix
-